这里现有的相关问题涉及以下方面的差异
但Delegate.BeginInvoke和Thread.Start之间有什么区别?
Dea*_*ing 17
Thread.Start
启动一个新的OS线程来执行委托.委托返回时,线程被销毁.这是一个非常重量级的操作(启动和销毁一个线程)所以你通常只在方法长时间运行时才这样做.
Delegate.BeginInvoke
将在线程池线程上调用委托.方法返回后,线程将返回到池中以供另一个任务重用.这样做的好处是将方法排队到线程池相对较轻,因为您不必每次都启动一个全新的线程.
Control.BeginInvoke
在控件的线程上调用方法.UI组件本质上是单线程的,并且每次与UI控件的交互都必须在创建它的线程上完成.Control.BeginInvoke
是一种方便的方法.
归档时间: |
|
查看次数: |
5009 次 |
最近记录: |