delegate的调用方法总结

delegate的调用方法总结

1、直接调用:delegate( args )或者delegate.Invoke( args )
2、异步调用:delegate.BeginInvoke与delegate.EndInvoke

异步调用注意:
1、C#的异步调用是通过从ThreadPool里取出一个线程来完成的。所以无法对其最终调用的顺序进行预期。即:如果先后调用了BeginInvoke(1),BeginInvoke(2),收到的可能先是2,然后才是1。
2、为了解决这个问题,可以使用EndInvoke来保证顺序可控。EndInvoke从本质上是将本线程阻塞,直到子线程返回为止。
3、BeginInvoke不支持有多个监听的Delegate。
4、千万要注意,【线程异步】,不等同步【消息循环异步】。

你可能感兴趣的:(delegate的调用方法总结)