请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1075个文字,预计阅读时间需要5分钟。
目录+c
目录
- c# Invoke与BeginInvoke
- 先讲下Invoke
- BeginInvoke
- 总结
c# Invoke与BeginInvoke
最近在学习线程时,发现当我创建的线程需要访问UI界面的时,会发生异常,原因是我在跨线程调用主线程的控件,因此windows GUI编程有一个规则,就是只能通过创建控件的线程来操作控件的数据,否则就可能产生不可预料的结果。
有时候,我们不得不跨线程调用主界面的控件来进行操作,所以为了方便的解决问题,.net为我们提供了Invoke 与beginInvoke
Invoke 与begininvoke区别在于,invoke会阻塞当前线程,直到invoke调用结束,才会继续执行下去,而begininvoke 则可以异步进行调用,也就是该方法封送完毕后马上返回,不会等待委托方法的执行结束,调用者线程将不会被阻塞。但是调用者也可以使用EndInvoke方法或者其它类似WaitHandle机制等待异步操作的完成。
本文共计1075个文字,预计阅读时间需要5分钟。
目录+c
目录
- c# Invoke与BeginInvoke
- 先讲下Invoke
- BeginInvoke
- 总结
c# Invoke与BeginInvoke
最近在学习线程时,发现当我创建的线程需要访问UI界面的时,会发生异常,原因是我在跨线程调用主线程的控件,因此windows GUI编程有一个规则,就是只能通过创建控件的线程来操作控件的数据,否则就可能产生不可预料的结果。
有时候,我们不得不跨线程调用主界面的控件来进行操作,所以为了方便的解决问题,.net为我们提供了Invoke 与beginInvoke
Invoke 与begininvoke区别在于,invoke会阻塞当前线程,直到invoke调用结束,才会继续执行下去,而begininvoke 则可以异步进行调用,也就是该方法封送完毕后马上返回,不会等待委托方法的执行结束,调用者线程将不会被阻塞。但是调用者也可以使用EndInvoke方法或者其它类似WaitHandle机制等待异步操作的完成。

