.NET中实现异步操作的三种方式:
异步委托、用BackgroundWorker组件、显式使用System.Threading.Thread
上述三种技术中核心都是使用线程,各有其适合的使用场所,其中前两种较为方便,适合完成单任务的异步操作,但第三种扩展性、灵活性最高,下面会各个介绍。
异步委托的调用在涉及更新winApp的ui时(也即主线程外的线程更新ui),将由control的InvokeReqired属性(如果当前code不是running在control被创建的线程其值为true)和Invoke方法(在ui的线程上触发方法)完成。
BackgroundWorker组件的使用:
另外BackgroundWorker还可提供report process功能,但除非自定义接口进行包装,否则将把线程任务和ui紧密耦合,当然亦可使用Thread取完成此功能。
System.Threading.Thread自不必多说(可说的太多了),完成.net的多线程编程,详细的多线程编程可参见具体书籍,如c# thread handbook等,等以后用的多了再总结。
Powered by: 博客园 Copyright © sharplife