3

我想將每個線程數據存儲在ADO.NET數據服務中。在我的線程特定的靜態變量上使用ThreadStatic屬性是否安全,還是會遇到問題?我擔心的是我的ThreadStatic變量在請求完成並且線程死亡後不會被垃圾回收。我可以(安全地)使用ADO.NET數據服務中的ThreadStatic屬性嗎?

如果有更好的方法來做我想做的事情,請讓我知道。這似乎是最簡單的解決方案。

任何信息會非常有幫助,謝謝!

回答

3

我發現爲每個請求創建的DataService對象位於標記爲IsThreadPoolThread = true的線程中,因此在這種情況下使用[ThreadStatic]屬性並不合適,因爲之前的請求中的信息可能會在稍後使用(不是希望的)。

0

任何使用ThreadStatic標記的變量的生命週期至少與創建它們的線程一樣長。在Thread終止之後,它們會像其他任何值一樣被垃圾收集。

相關問題