首页 > Windows开发 > 详细

[转]Winform 经验集

时间:2017-02-06 16:58:07      阅读:255      评论:0      收藏:0      [点我收藏+]
多线程篇:
CheckForIllegalCrossThreadCalls = false;

更多示例可见: http://www.cnblogs.com/z5337/p/4030287.html

if (!this.IsHandleCreated || this.Disposing || this.IsDisposed) return;
Invoke((MethodInvoker)(delegate {
    // UI界面操作代码
}));

 以上代码中,BeginInvoke、Invoke、MethodInvoker、EventHandler 可以互换

使用 BeginInvoke 之后,可以执行以下操作:

1. 进行某些操作,然后调用 EndInvoke 一直阻止到调用完成。

2. 使用  System.IAsyncResult.AsyncWaitHandle 属性获取 WaitHandle, 使用它的 WaitOne 方法一直阻止执行直到发出 WaitHandle 信号,然后调用 EndInvoke.

3. 轮询由 BeginInvoke 返回的 IAsyncResult ,确定异步调用何时完成,然后调用 EndInvoke.

4. 将用于回调方法的委托传递给 BeginInvoke。 异步调用完成后,将在 ThreadPool 线程上执行该方法。该回调方法将调用 EndInvoke 。

注意:每次都要调用 EndInvoke 来完成异步调用。

[转]Winform 经验集

原文:http://www.cnblogs.com/z5337/p/6370793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!