競合状態を防ぐためにいくつかのロック技術が実装されていない限り、非同期操作内で静的メソッドとクラスを使用しないことが私のアプローチです。async/await操作で静的メソッド/クラスを使用する方法
これで、async/awaitがc#4.5+フレームワークに導入されました。マルチスレッドアプリケーションを簡素化し、応答性の高いUIを奨励します。
しかし、ロックは待機メソッドの上に置くことはできません(そして、私は議論していません)。これで、非同期/完全に冗長を待っている静的メソッドが作成されるようになりますか?
複数のスレッドから静的メソッドを呼び出すと、副作用がない場合でも問題ありません。 –
メソッドに副作用がある場合、最初に静的であるべきではありません。これは、グローバルな変更可能な状態を避けるべきガイドラインに違反するためです。 – CodesInChaos
@CodesInChaos私はあなたが*ガイドラインに違反することはできないと思っています-----いずれにしても、何らかの共有状態が変更されていない限り、ほとんどの静的メソッドではロックが必要ではありません。 OPはそのフロントに十分な情報を提供しておらず、状態管理のためのロックではなく静的であるため、ロックを暗示しているようです。 –