Share via


執行緒安全

Regex 類別本身是執行緒安全和不變的 (唯讀)。也就是,Regex 物件可以建立在任何執行緒並在執行緒間共用;比對方法可以從任何執行緒中呼叫,而且絕不會變更任何全域狀態。

然而,Regex 傳回的結果物件 (MatchMatchCollection) 應該使用在單一執行緒上。雖然這些物件中有許多在邏輯上是不變的,但是它們的實作可能會延遲某些結果的計算以改善效能,而結果是呼叫端必須將對它們的存取序列化。

如果有需要在多個執行緒上共用 Regex 結果物件,這些物件可以呼叫它們的同步方法,以轉換為安全執行緒執行個體。除了列舉值是例外,所有規則運算式類別都是安全執行緒,或者可以經由同步方法轉換為安全執行緒物件。

列舉值是唯一的例外。應用程式必須序列化對集合列舉值的呼叫。規則就是,如果集合可以在一個以上的執行緒中同時列舉,您應該在列舉值所周遊的集合的根物件上同步處理列舉值方法。

請參閱

其他資源

.NET Framework 規則運算式