私はマルチスレッドアプリケーションで作業しているため、異なるスレッドで使用していた型インスタンスで競合を引き起こす可能性のあるプライベートフィールドを使用しないように常に努めていました。代わりに、メソッド パラメーターとして機能するために必要な情報を収集してきました。これにより、すべてが同じパラメーターを宣言する多数のメソッドが作成されました。
private void MySubmethod(MyConfiguration configuration)
今、タイプを再設計し、スレッドごとに 1 つのインスタンスを作成することを考えていましたが、ThreadStatic 属性に出くわしました。
プライベートなスレッド静的フィールドを宣言し、各スレッドが呼び出しているメイン メソッド内でそれを初期化し、すべてのサブメソッド内でこのフィールドを再利用して、パラメーターを廃止することは良い考えですか? それとも、スレッドごとに新しいインスタンスを作成することに集中する必要があるので、何か欠点がありますか?
[ThreadStatic]
private static MyConfiguration _configuration;