0

ユーザーを一括で作成するプログラムを作成しています。作成の一部である操作が約 5 秒間ブロックされています。これを回避するために、それをスレッド化し、すべてをスレッド プールに配置しました。

私の質問は、スレッドの外側で原則を作成し、グループの原則をスレッドに渡して呼び出すgroup.Members.Add(u)group.Save()、問題が発生する可能性があるかどうかです。各スレッド内から新しいグループ プリンシパルを生成した方がよいでしょうか?

4

2 に答える 2

1

2 つのスレッドが同じコレクション インスタンスで動作するときはいつでも、安全ではありません。UI がブロックされないようにバックグラウンド スレッドを 1 つだけ使用している場合は、バックグラウンド スレッドでグループを作成し、そこで排他的に使用します。複数のスレッドを生成して同時に Active Directory にアクセスすることで、グループへのユーザーの追加を高速化する計画がある場合、それは役に立たないと思います。

于 2010-05-21T19:20:54.757 に答える
0

MSDNから:

この型の public static (Visual Basic では共有) メンバーはすべて、スレッド セーフです。インスタンス メンバーは、スレッド セーフであるとは限りません。

その小さなメモは、ドキュメントで非常に一般的なものです。「スレッドセーフ」の意味と同時アクセスの制御方法を決定するのは、プログラマ次第です。

于 2010-01-22T15:29:44.303 に答える