SyncContextPromise.cs
25 lines
| 805 B
| text/x-csharp
|
CSharpLexer
/ Implab / SyncContextPromise.cs
cin
|
r72 | using System.Threading; | ||
namespace Implab { | ||||
public class SyncContextPromise<T> : Promise<T> { | ||||
readonly SynchronizationContext m_context; | ||||
public SyncContextPromise(SynchronizationContext context) { | ||||
Safe.ArgumentNotNull(context, "context"); | ||||
m_context = context; | ||||
} | ||||
cin
|
r119 | protected override void SignalSuccess(IDeferred<T> handler) { | ||
m_context.Post(x => base.SignalSuccess(handler), null); | ||||
cin
|
r72 | } | ||
cin
|
r119 | |||
protected override void SignalError(IDeferred<T> handler, System.Exception error) { | ||||
m_context.Post(x => base.SignalError(handler, error), null); | ||||
} | ||||
protected override void SignalCancelled(IDeferred<T> handler) { | ||||
m_context.Post(x => base.SignalCancelled(handler), null); | ||||
cin
|
r72 | } | ||
} | ||||
} | ||||