12
A
回答
13
我不相信有。你可以做的事情有很多,比如撥打Monitor.Wait(monitor, 0)
和趕上SynchronizationLockException
,但這很糟糕(理論上可以「捕捉」另一個線程正在等待的脈衝)。
我建議你嘗試重新設計,以免你不需要這個,恐怕。
編輯:在.NET 4.5中,這是Monitor.IsEntered
可用。
1
相關信息由CLR使用的SyncBlock結構存儲,並且可以在調試過程中用例如WinDbg + sos。據我所知,沒有辦法從託管代碼中獲取信息,但是假設您可以以某種方式(以可靠的方式)獲得指向CLR使用的相關數據的指針,則可能會出現不安全的代碼。
相關問題
- 1. 某人如何在一個線程中鎖定多個對象?
- 2. 如何測試一個Python對象是否是一個模塊?
- 3. 你如何測試對象是否是另一個對象
- 4. 如何測試一個圓是否在旋轉的對象中
- 5. 如何測試一個對象在Objective-C中的哪個類?
- 6. 如何測試一個對象是否在Delphi中被釋放
- 7. 測試一個對象是否是一個字符串
- 8. 同步對象在一個線程鎖定,而在另一個
- 9. boost :: mutex /如何測試一個互斥鎖是否被鎖定
- 10. 如何測試一個文件是否是一個.NET程序集在C#
- 11. C#:測試一個對象是否實現了任何一個接口列表?
- 12. 鎖定一個對象被多個線程訪問 - Objective-C
- 13. 如何測試某個屬性中是否存在某個XML
- 14. 在兩個對象上持有鎖
- 15. 測試一個對象是否實現了一個接口
- 16. 如何測試一個變量是否是Moment.js對象?
- 17. 如何讓一個線程解鎖另一個線程鎖定的互斥鎖?
- 18. 測試一個元素是否與jQuery具有某個類
- 19. 測試一個對象是一個或另一個實例
- 20. 如何測試一個函數是否返回一個angularJS承諾對象
- 21. 測試一條線是否在三角形內有一個點
- 22. 從C++中的另一個進程解鎖一個線程
- 23. 當一個鎖持有一個非最終對象時,該對象的引用是否仍然被另一個線程改變?
- 24. 如何測試是否用rspec創建了一個對象?
- 25. 如何問一個對象內的某個對象內的某個對象
- 26. QMutex鎖定在一個線程中,並在另一個線程中解鎖
- 27. 如何測試一個對象是否在使用Jquery的另一個對象內?
- 28. 測試一個istream對象
- 29. 什麼是正確/正確的方式來測試一個對象是否是一個JavaScript中的jQuery對象?
- 30. C++如何測試一個類,看它是否有成員?
感謝Jon,幸運的是我們並沒有試圖使用它,這只是當我閱讀一些關於C#中的線程的文章時彈出到我腦海中的東西:-P – theburningmonk 2010-03-09 10:07:48
嗨Jon,在C#4.5中這是現在可能的與[Monitor.IsEntered(Object obj)](http://msdn.microsoft.com/en-us/library/system.threading.monitor.isentered.aspx)對不對? – Ben 2012-10-06 17:51:07
@Ben:假設你的意思是.NET 4.5,是的。將編輯。 – 2012-10-06 20:57:17