Control中的beginInvoke于Delegate中的beginInove一起使用
2016-11-23 17:16
459 查看
Control中的beginInvoke于Delegate中的beginInove一起使用。使用delegate中的beginInvoke来产生一个新线程。在新线程调用的方法中使用Control中的beginInvoke来进行UI操作。
private void mouseDown(Object sender, MouseEventArgs e) { TestDelegate s = new TestDelegate(showXY); s.BeginInvoke(e.X, e.Y, null, null); //产生新线程。 } private void showXY(int x, int y) { Thread.Sleep(5000); UIDelegate UIDelegate = delegate (string istrue) { this.Text = ("X: " + istrue + " Y: " + y); }; this.Invoke(UIDelegate,"Hello"); //使用Invoke操作UI,调用带参数的委托。 } public delegate void TestDelegate(int x, int y); public delegate void UIDelegate(string istrue);
相关文章推荐
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用
- 异常在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。
- 在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。(以解决)
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用
- Thread.Start和Delegate.BeginInvoke 以及Control.BeginInvoke
- Control.BeginInvoke vs. delegate.BeginInvoke(3)转
- Control.BeginInvoke vs. delegate.BeginInvoke(2)转
- 举例说明Control.Invoke, Control.BeginInvoke, DelegateBeginInvoke
- 在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。(以解决)
- Control.BeginInvoke vs. delegate.BeginInvoke(1)
- Control.BeginInvoke 和 Delegate.BeginInvoke 备忘
- 不同线程间通信,使用Control的Invoke和BeginInvoke的方法
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用 Control 不能在创建它的 Thread 之外被调用。但可以通过 invoke 来保证 C
- C#Delegate.Invoke、Delegate.BeginInvoke And Control.Invoke、Control.BeginInvoke
- delegate 和 control 的BeginInvoke方法的差异
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用
- delegate的BeginInvoke和EndInvoke的小例子
- Control的Invoke和BeginInvoke 是相对于支线线程
- Invoke或者BeginInvoke的使用
- WinForm二三事(三)Control.Invoke&Control.BeginInvoke