##// END OF EJS Templates
added the blocking queue
added the blocking queue

File last commit:

r119:2573b562e328 v2
r137:238e15580926 v2
Show More
ControlBoundPromise.cs
38 lines | 1.2 KiB | text/x-csharp | CSharpLexer
/ Implab.Fx / ControlBoundPromise.cs
using System.Windows.Forms;
using System;
namespace Implab.Fx {
public class ControlBoundPromise<T> : Promise<T> {
readonly Control m_target;
public ControlBoundPromise(Control target) {
Safe.ArgumentNotNull(target, "target");
m_target = target;
}
protected override void SignalSuccess(IDeferred<T> handler) {
if (m_target.InvokeRequired)
m_target.BeginInvoke(new Action<IDeferred<T>>(base.SignalSuccess), handler);
else
base.SignalSuccess(handler);
}
protected override void SignalCancelled(IDeferred<T> handler) {
if (m_target.InvokeRequired)
m_target.BeginInvoke(new Action<IDeferred<T>>(base.SignalCancelled), handler);
else
base.SignalCancelled(handler);
}
protected override void SignalError(IDeferred<T> handler, Exception error) {
if (m_target.InvokeRequired)
m_target.BeginInvoke(new Action<IDeferred<T>,Exception>(base.SignalError), handler, error);
else
base.SignalError(handler, error);
}
}
}