##// END OF EJS Templates
Bound promise to CancellationToken...
Bound promise to CancellationToken Added new states to ExecutionSate enum. Added Safe.Guard() method to handle cleanup of the result of the promise

File last commit:

r208:7d07503621fe v2
r209:a867536c68fc v2
Show More
IRunnable.cs
30 lines | 1.0 KiB | text/x-csharp | CSharpLexer
using System;
namespace Implab.Components {
/// <summary>
/// Interface for the component which performs a long running task.
/// </summary>
/// <remarks>
/// <para>The component also should implement <see cref="IDisposable"/> interface to be able to release used resources.</para>
/// <para>All methods of this interface must be a thread safe. If the operation is not applicable in the current state the
/// method should throw an exception and keep the current state unchanged.</para>
/// </remarks>
public interface IRunnable : IDisposable {
/// <summary>
/// Starts this instance
/// </summary>
IPromise Start();
/// <summary>
/// Stops this instance, after the instance is stopped it can move to Failed, Ready or Disposed state, in case with the last it can't be reused.
/// </summary>
IPromise Stop();
ExecutionState State { get; }
event EventHandler<StateChangeEventArgs> StateChanged;
Exception LastError { get; }
}
}