是System.DirectoryServices.AccountManagement.GroupPrincipal线程安全吗?

问题描述 投票:0回答:2

我正在编写一个将批量创建用户的程序,我有一个操作,它是创建的一部分,是块大约5秒,为了解决这个问题,我将使它成为线程并让所有东西都在线程池中。

我的问题是,如果我在线程外创建原则并将组原则传递给线程并调用group.Members.Add(u)group.Save()我可以遇到麻烦吗?从每个线程中生成一个新的组主体会更好吗?

.net thread-safety directoryservices account-management groupprincipal
2个回答
0
投票

来自MSDN

此类型的任何公共静态(在Visual Basic中为Shared)成员都是线程安全的。任何实例成员都不保证是线程安全的。

这个小注释在文档中非常常见。由程序员决定“线程安全”的含义以及如何控制并发访问权限取决于您。


1
投票

每当两个线程作用于同一个集合实例时,您就不安全了。如果您只是使用单个后台线程,因此UI不会阻塞,那么在后台线程中创建组并专门使用它。如果你的计划是通过产生多个线程同时命中Active Directory来加速将用户添加到组中,我猜这样做无济于事。

© www.soinside.com 2019 - 2024. All rights reserved.