Mercurial > pub > ImplabNet
view Implab.Fx/PromiseHelpers.cs @ 104:5f10d54b45df v2
renamed Promise.Last -> Promise.On
Promise.On doesn't changes Promise.IsExclusive property
author | cin |
---|---|
date | Sun, 09 Nov 2014 23:03:45 +0300 |
parents | b4c4d65b7def |
children | 2573b562e328 |
line wrap: on
line source
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 /// .DispatchToControl(m_ctl) // handle the promise in the thread of the control /// .Then( /// description => m_ctl.Text = description // now it's safe /// ) /// </example> public static IPromise<T> DispatchToControl<T>(this IPromise<T> that, Control ctl) { Safe.ArgumentNotNull(that, "that"); Safe.ArgumentNotNull(ctl, "ctl"); var directed = new ControlBoundPromise<T>(ctl,that); that.On( directed.Resolve, directed.Reject, directed.Cancel ); return directed; } } }