Invoke和BeginInvoke

1、Delegate的Invoke和BeginInvoke
1.1、Delegate.Invoke
    Delegate.Invoke用于再当前线程上执行一个委托。我们知道委托是一个函数或方法的引用,Delegate.Invoke就是调

用方法或函数的机制。

1.2、Delegate.BeginInvoke
Delegate.BeginInvoke用来异步执行一个委托,在一个单独的线程中执行,所以不会阻塞当前的线程。在调用

Delegate.BiginInvoke后,需要在某个时刻调用EndInvoke以避免资源泄露。由于委托方法是在单独的线程中,所以不能更

新UI线程的属性或者调用任何潜在更新UI的方法。比方说,如果想要更新一个进度条,填充一个列表或其他类似的工作,

必须使用一个不同的机制:Control.Invoke或Control.BeginInvoke

2、Control的Invoke和BeginInvoke
2.1、Control.Invoke
用于再控件所在的UI线程执行委托,如果你有一个更新UI的委托,你可以从其他线程中调用Control.Invoke来执行UI上更

新操作。

2.2、Control.BeginInvoke
Control.BeginInvoke做同样的事情,区别是异步方式。也就是说,Control.Invoke等待UI线程完成更新操作,而

Control.BeginInvoke立即返回,不会阻塞当前线程。

你可能感兴趣的:(ini)