c#中可以用BeginInvoke去启动异步调用,但是有两个BeginInvoke一个是controller的BeginInvoke还有一个是委托的BeginInvoke。
主要区别是controller的BeginInvoke会返回到主线程中执行。如果在Winform中使用了controller得BeginInvoke去执行一些费时的操作任然会使界面假死。
controller的BeginInvoke使用方法是先定义一个委托 如
delegate void UpdateUI(string s);然后生成一个实例
UpdateUI mi = new UpdateUI(DoUpdate); DoUpdate就是要执行的具体函数返回值和参数要和定义的委托一致.
this.BeginInvoke(mi,new object[]{s}) 这里的s就是要传递的参数