我可以讓Dictionary<Thread, object>
存儲線程的數據並使用Thread.CurrentThread來檢索它嗎?Thread.CurrentThread是否總是返回相同的實例?
5
A
回答
10
你可以,但你也需要同步(因爲Dictionary<,>
不是線程安全的)。
替代方案:
ThreadStaticAttribute
ThreadLocal<T>
(.NET 4)
當然,使用字典在ThreadStaticAttibute
的一個好處是,你不必擔心垃圾儘可能多,或者確實是黑魔法。如果您使用.NET 4,則ThreadLocal<T>
可能是您的最佳選擇。
3
是的,你可以,如果你想訪問其他線程的數據,但你應該首先看一下ThreadStaticAttribute或ThreadLocal,如果線程只需要看到他們自己的數據就好多了。
相關問題
- 1. Thread.currentThread()是否總是返回相同的實例?
- 2. SchedularFactory是否使用新方法返回相同的實例
- 3. DateTime.ToString(「s」)是否總是返回相同的格式?
- 4. PetaPoco GetInstance()總是返回新的實例?
- 5. FlashScope.getCurrent(...)總是返回新的FlashScope實例
- 6. Google App Engine datastore.get(key)是否總是返回相同的實體對象?
- 7. Random.Next返回總是相同的值
- 8. AVAudioSession總是返回相同的outputVolume
- 9. Random.Next總是返回相同的值
- 10. boundingRectWithSize總是返回相同的CGRect
- 11. localtimestamp總是返回相同的值
- 12. Random.Next()總是返回相同的值
- 13. 函數總是返回相同的值
- 14. managedQuery總是返回相同的結果
- 15. glReadPixels總是返回相同的值glClearColor
- 16. clEnqueueMapBuffer是否總是返回相同CL緩衝區的相同地址?
- 17. A *實現總是返回相同的值
- 18. ruby的#hash在解釋器實例中的返回值是否相同?
- 19. RESTful架構中的給定URI是否總是返回相同的響應?
- 20. 不重寫toString()方法是否總是返回對象的相同值?
- 21. My.Computer.Name是否總是返回大寫?
- 22. WebMethod是否總是返回XML?
- 23. PayPal是否總是返回payer_id?
- 24. DB2實例是否與數據庫實例相同?
- 25. 多個實例的變量總是相同的
- 26. 的java NIO的SocketChannel讀總是返回相同的數據
- 27. WCF總是返回400例外
- 28. 的Android ContentResolver.query總是返回相同的數據
- 29. Caffe中的圖像分類總是返回相同的分類
- 30. 嘲笑的ExecutorService總是返回相同的嘲笑未來