diff Implab.Fx/ControlBoundPromise.cs @ 192:f1da3afc3521 release v2.1

Слияние с v2
author cin
date Fri, 22 Apr 2016 13:10:34 +0300
parents 97fbbf816844
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Implab.Fx/ControlBoundPromise.cs	Fri Apr 22 13:10:34 2016 +0300
@@ -0,0 +1,23 @@
+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 SignalHandler(HandlerDescriptor handler, int signal) {
+            if (m_target.InvokeRequired)
+                m_target.BeginInvoke(new Action<Promise<T>.HandlerDescriptor, int>(base.SignalHandler), handler, signal);
+            else
+                base.SignalHandler(handler, signal);
+        }
+    }
+}
+