摘要: 同步方法和异步方法的区别同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作异步编程概览.NET Framework 允许您异步调用任何方法。定义与您需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。BeginInvoke 方法用于启动异步调用。它与您需要异步执行的方法具有相同的参数,只不过还有两个额外的参数(将在稍后描述)。BeginInvoke 立即返回,不等待异步调用完成。BeginInvoke 返回 IasyncR 阅读全文
posted @ 2011-11-28 11:56 qb371 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应。解决的方法就是新开一个线程,把耗时的操作放到线程中执行,这样就可以在用户界面上进行其它操作。新建线程可以用 Thread 类,可以实现多线程同时操作,简单的可以通过 BackgroundWorker 类实现。用 BackgroundWorker 类执行耗时的操作BackgroundWorker 类在 System.ComponentModel 命名空间下。VS 的工具箱时有一个 BackgroundWorker 组件,就是这个类。常用方法1.RunWorkerAsync开始执行后台操作。引发 阅读全文
posted @ 2011-11-28 11:31 qb371 阅读(227) 评论(0) 推荐(0) 编辑
摘要: BackgroundWorker 在执行DoWork事件时该如何取消呢?方法1 DoWork 执行一个(耗时)循环方法2 DoWork执行一个(耗时)方法[注:方法没有循环]见代码:方法1中DoWork事件执行的是一个for循环(foreach,while.....)取消操作很简单,只要在循环中判断即可看代码---------代码是从网上拷贝下来的,这种例子网上很多view plain#regionusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Component 阅读全文
posted @ 2011-11-28 11:25 qb371 阅读(358) 评论(0) 推荐(0) 编辑