##// END OF EJS Templates
Merge
Merge

File last commit:

r119:2573b562e328 v2
r283:d1498b67e01a merge default
Show More
PromiseHelpers.cs
43 lines | 1.7 KiB | text/x-csharp | CSharpLexer
cin
Implab.Fx: implemented animation object...
r4 using System;
using System.Windows.Forms;
using System.Threading;
namespace Implab.Fx
{
public static class PromiseHelpers
{
/// <summary>
/// Перенаправляет обработку обещания в поток указанного элемента управления.
/// </summary>
/// <typeparam name="T">Тип результата обещания</typeparam>
/// <param name="that">Исходное обещание</param>
/// <param name="ctl">Элемент управления</param>
/// <returns>Новое обещание, обработчики которого будут выполнены в потоке элемента управления.</returns>
/// <exception cref="ArgumentNullException">Параметр не может быть <c>null</c>.</exception>
/// <example>
/// client
/// .Get("description.txt") // returns a promise
cin
Refactoring of the IPromise<T> interface...
r76 /// .DispatchToControl(m_ctl) // handle the promise in the thread of the control
cin
Implab.Fx: implemented animation object...
r4 /// .Then(
/// description => m_ctl.Text = description // now it's safe
/// )
/// </example>
cin
Refactoring of the IPromise<T> interface...
r76 public static IPromise<T> DispatchToControl<T>(this IPromise<T> that, Control ctl)
cin
Implab.Fx: implemented animation object...
r4 {
cin
Refactoring of the IPromise<T> interface...
r76 Safe.ArgumentNotNull(that, "that");
Safe.ArgumentNotNull(ctl, "ctl");
cin
Implab.Fx: implemented animation object...
r4
cin
Promises rewritten, added improved version of AsyncQueue
r119 var directed = new ControlBoundPromise<T>(ctl);
directed.On(that.Cancel, PromiseEventType.Cancelled);
cin
Implab.Fx: implemented animation object...
r4
cin
renamed Promise.Last -> Promise.On...
r104 that.On(
cin
promises refactoring
r72 directed.Resolve,
cin
Refactoring of the IPromise<T> interface...
r76 directed.Reject,
directed.Cancel
cin
Implab.Fx: implemented animation object...
r4 );
return directed;
}
}
}