##// END OF EJS Templates
fixed blocking queue
fixed blocking queue

File last commit:

r138:f75cfa58e3d4 v2
r139:041b77711262 v2
Show More
ControlBoundPromise.cs
38 lines | 1.2 KiB | text/x-csharp | CSharpLexer
/ Implab.Fx / ControlBoundPromise.cs
cin
promises refactoring
r72 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;
}
cin
Promises rewritten, added improved version of AsyncQueue
r119 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);
cin
promises refactoring
r72 }
cin
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
r138 protected override void SignalCancelled(IDeferred<T> handler, Exception reason) {
cin
promises refactoring
r72 if (m_target.InvokeRequired)
cin
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
r138 m_target.BeginInvoke(new Action<IDeferred<T>,Exception>(base.SignalCancelled), handler, reason);
cin
promises refactoring
r72 else
cin
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
r138 base.SignalCancelled(handler, reason);
cin
promises refactoring
r72 }
cin
Promises rewritten, added improved version of AsyncQueue
r119
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);
}
cin
promises refactoring
r72 }
}