0

我正在編寫一個程序,可以批量創建用戶,我有一個操作,它是創建塊的一部分,約5秒鐘,以解決這個問題,我將使它成爲線程並讓所有內容都坐在一個線程中池。是System.DirectoryServices.AccountManagement.GroupPrincipal線程安全嗎?

我的問題是如果我在線程外創建原理並將組原則傳遞給線程並致電group.Members.Add(u)group.Save()我能陷入麻煩嗎?從每個線程內部生成一個新的組主體會更好嗎?

回答

0

MSDN

任何公共靜態此類型的成員(在Visual Basic中的Shared)都是線程安全的。任何實例成員不保證是線程安全的。

這個小注是文檔中非常常見的一個。程序員由您決定「線程安全」是什麼意思,以及如何控制併發訪問。

1

任何時候兩個線程都作用於同一個集合實例,你是不安全的。如果您只是使用單個後臺線程以便UI不會阻止,則可以在後臺線程中創建該組並僅在此處使用它。如果您的計劃是通過產生多個線程同時擊中Active Directory來加速將用戶添加到組中,我猜這樣做無濟於事。