• 30
  • 1月

在WinForm应用程序中,防止在进行耗时操作时界面假死的一种解决方案–开启一个新的线程处理那些耗时的操作。于是Control类(Form的基类)提供了一个方法用于开启新的线程,这就是BeginInvoke()。
这个方法的语法看起来有些特别:
public IAsyncResult BeginInvoke (
Delegate method,
params Object[] args
)
使用前需要先定义好一个委托,使用委托来调用类自己的方法,且原始方法的参数要放在委托之后,作为BeginInvoke()的参数传进去。例如书上这段代码:
this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), “Wrote change event to log”);

相关原始定义:
private delegate void UpdateWatchTextDelegate(string newText);
public void UpdateWatchText(string newText)  {…}
没有再多的研究,就先写到这里了。

标签:

您可以对这篇文章发表一条评论,或者在您自己的网站中引用 (Trackback) 它

发表一条评论

所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程