view Implab/Components/IRunnable.cs @ 207:558f34b2fb50 v2

added Safe.DispatchEvent() a legacy equivalent for '?.Invoke()' added Safe.Dispose(IEnumerable) added PromiseExtensions.CancellationPoint to add a cancellation point to the chain of promises added IPromise<T> PromiseExtensions.Then<T>(this IPromise<T> that, Action<T> success) overloads added PromiseExtensions.Error() overloads to handle a error or(and) a cancellation
author cin
date Wed, 09 Nov 2016 12:03:22 +0300
parents 8200ab154c8a
children 7d07503621fe
line wrap: on
line source

using System;

namespace Implab.Components {
    public interface IRunnable {
        /// <summary>
        /// Starts this instance.
        /// </summary>
        IPromise Start();

        /// <summary>
        /// Stops this instance. After the instance is stopped it can't be started again, stopping should be treated as gracefull and async dispose.
        /// </summary>
        IPromise Stop();

        ExecutionState State { get; }

        event EventHandler<StateChangeEventArgs> StateChanged;

        Exception LastError { get; }
    }
}