[C#] 簡單測試 ThreadStatic ,一個可以瞬間了解的範例

2023-11-11

最近在玩一些東西,看到一個有趣的東西,已經出來很久了,但是最近才看到覺得很有趣

但是看了一下官方範例有點看不太懂,之後自己測試一下才發現原來是這樣設計使用的

就是一個 Attribute 叫做 [ThreadStatic]


簡單的說,一般狀況,我們在 宣告一個 static 得值,任何 Thread 去存取他,都會造成本體的影響

但是透過[ ThreadStatic] 會按照 Thread 切開變成原始的值,簡單的說是這樣直接看範例可以秒懂..


Result:


從案例看一看就懂,對於 var2 來說,兩隻 Thread 都會進行存取,所以寫入的值是哪一個 Thread 是不確定的

而且值也會往上加上去,但是加上 [ThreadStatic] 就會根據 Thread 切開

詳細可以參考這裡:

https://learn.microsoft.com/zh-tw/dotnet/api/system.threadstaticattribute?view=net-8.0&Wt.mc_id=DT-MVP-4030677

https://zhuanlan.zhihu.com/p/307526186 - 這裡有詳細說明到底TreadStaitc 在 執行中的變化

 https://www.cnblogs.com/ryanzheng/p/10962513.html






當麻許的超技八 2014 | Donma Hsu Design.