end*_*ian 56 c# multithreading delegates
我已经阅读了关于每个BeginInvoke()是否必须与EndInvoke()匹配的矛盾意见.是否有任何与调用EndInvoke()相关的泄漏或其他问题?
而且EndInvoke调用不是可选调用,它是合同的一部分.如果调用BeginInvoke,则必须调用EndInvoke.
为什么这是必要的经典例子.从BeginInvoke返回的IAsyncResult很可能已经分配了附加到它的资源.最常见的是WaitHandle.因为IAsyncResult没有实现IDisposable,所以必须选择另一个地方来释放资源.唯一可以这样做的地方是EndInvoke.
我在以下博文中简要讨论了这个问题.
http://blogs.msdn.com/jaredpar/archive/2008/01/07/isynchronizeinvoke-now.aspx
| 归档时间: |
|
| 查看次数: |
14630 次 |
| 最近记录: |