日期:2014-05-19  浏览次数:21041 次

在同一个类里使用delegate及其绑定的方法有什么用??
今天看了一个程序,同一个类里写了delegate,该的delegate所绑定的方法也在该类里,既然都在一个类里,为什么不直接调用方法,还非委托那么一下呢??
谢谢回答。

------解决方案--------------------
可能使用了多线程,为了安全访问UI
------解决方案--------------------
delegate 的 BeginInvoke 方法执行时候, delegate 所对应的那个函数不是在调用(delegate.BeginInvoke )的线程中执行,而是在.NET 的Thread Pool里的一个线程上执行,有人喜欢用这种方法把一个函数抛到另外一个线程上执行.


还有一种情况是在一个非Widnows Form的主线程中需要访问Window Form主线程上产生的一个控件,这时侯要用控件的Invoke或者BeginInvoke把此访问同步到主线程上来,而这个Invoke或者BeginInvoke需要一个delegate作为参数.