BlockingCollection.Dispose实际上做了什么?BlockingCollection.Dispose实际上做了什么?
7
A
回答
9
这可以正确处置内部等待手柄。
BlockingCollection<T>
在内部使用一对事件等待句柄,该句柄又具有关联的本地HANDLE
。
具体地说,BlockingCollection<T>.Dispose()
释放这两个手柄返回到操作系统,由最终(通过SemaphoreSlim-> ManualResetEvent的)调用两种天然HANDLE
实例天然CloseHandle方法。
-4
释放当前
BlockingCollection<T>
类实例使用的所有资源。 (Source)
+2
这是真的,但含糊不清...... – 2010-07-06 17:25:57
+2
-1。这是无益的。 – 2010-07-06 17:32:45
4
有一个快速浏览一下与反射镜显示这...
protected virtual void Dispose(bool disposing)
{
if (!this.m_isDisposed)
{
if (this.m_freeNodes != null)
{
this.m_freeNodes.Dispose();
}
this.m_occupiedNodes.Dispose();
this.m_isDisposed = true;
}
}
和m_freeNodes
是private SemaphoreSlim m_freeNodes;
所以它释放出在内部使用的SemaphoreSlim。
相关问题
- 1. gwt PlaceTokenizer实际上做了什么?
- 2. Arduino F():它实际上做了什么
- 3. numpy.cov实际上做了什么
- 4. ADMManifest.checkManifestAuthoredProperly()实际上做了什么?
- 5. LD_INCLUDE_PATH实际上做了什么吗?
- 6. android:stretchMode实际上做了什么?
- 7. CascadeType.REFRESH实际上做了什么?
- 8. session_register_shutdown实际上做了什么?
- 9. CloudQueue.EndAddMessage(IAsyncResult)实际上做了什么?
- 10. Int [] Reverse - 这实际上做了什么?
- 11. e.preventDefault()方法实际上做了什么?
- 12. Python的__file__实际上做了什么?
- 13. std :: ofstream :: close()实际上做了什么?
- 14. XCode'Clean'实际上做了什么?
- 15. 实际上做了什么glutswapbuffers?
- 16. Sinatra :: Base.condition实际上做了什么?
- 17. NSLog实际上做了什么?
- 18. SetPriorityClass(REALTIME_PRIORITY_CLASS)实际上做了什么?
- 19. TwoPassFilter GPUImage实际上做了什么?
- 20. terraform刷新实际上做了什么?
- 21. SpringClassRule/SpringMethodRule实际上做了什么?
- 22. IMetadataExchange端点实际上做了什么?
- 23. Android SQLite - SQLiteDatabase.replace()实际上做了什么?
- 24. MvcBuildViews实际上做了什么吗?
- 25. pdb文件实际上做了什么?
- 26. regsvr32 filename.ax实际上做了什么?
- 27. ld -m --verbose实际上做了什么?
- 28. ifstream :: rdbuf()实际上做了什么?
- 29. TortoiseSVN清理实际上做了什么?
- 30. Process.Dispose()实际上做了什么?
我遇到了处置阻塞集合的问题(例如,上次发布时发布),直到我开始使用CancellationToken,请参阅https://stackoverflow.com/a/5759866/1544054 – Aviko 2018-03-10 09:51:14