私は基本的に2つのプロデューサと1つのコンシューマ、2つのタスクがデータを書き、コンシューマはそれを読み込みます。私はSemaphore
またはMutex
またはEventHandle
をスレッド間の同期に使用できますが、新しいタスクベースのコードでは、これらのスレッドを使用することはできません。待機した後に同じスレッドで非同期関数が再開する保証はないためです。異なるタスク間でどのように同期する必要がありますか?タスク間で共有データのアクセスを同期させるにはどうすればよいですか?
答えて
さまざまなタスク間でどのように同期する必要がありますか?
あなたはプロデューサ/コンシューマシステムを持っているので、あなたは非同期互換プロデューサ/コンシューマキューとして機能BufferBlock<T>
を、使用することができます。
より一般的なコーディネートの原始的な置き換えでは、my AsyncEx.Coordination libraryを参照してください。またはbuild your ownとすることができます。 .NETに唯一組み込まれているのはSemaphoreSlim
です。
ありがとう、ありがとう、私はAsyncExを試し、すべての元の同期プリミティブはSystem.Threadingにあり、System.Threading.Tasksに類似のものは何も追加されていません。つまり、このシナリオはTAPではまれですか?また、同期する必要がある場合は、タスクの代わりに古いスレッドを使用する必要がありますか? – fluter
あなたはTAPとあまり頻繁に同期する必要がなくなります。 IMOこれは部分的に非同期コードが自然に機能していることと、部分的には一般的に適用されている問題の種類に起因しています。多くの一般的なシナリオでは、スレッド化を使用してこれまで達成されていたことは、スレッド化なしで達成できるようになりました。 –
- 1. 共通ブロックとモジュール間でデータを共有するにはどうすればよいですか?
- 2. プロパティがウィジェット間で共有されないようにするにはどうすればよいですか?
- 3. 中間データを保存してSQLクエリ間で共有するにはどうすればよいですか?
- 4. スレッド間の同期はどうすればよいですか?
- 5. リモートサーバーのフォルダをGoogleドライブに共有または同期するにはどうすればよいですか?
- 6. アンドロイドのアクティビティ間で共有設定にアクセスするにはどうすればよいですか?
- 7. Expressでリクエストオブジェクトのルート間でデータを共有するにはどうすればよいですか?
- 8. Androidでリアルタイムにユーザー間でデータを共有するにはどうすればよいですか?
- 9. エリクシルのワーカープロセス間でデータを共有するにはどうすればよいですか?
- 10. 2つのWebページ間でデータを共有するにはどうすればよいですか?
- 11. カーネルCプログラムとユーザーレベルCプログラムの間でデータを共有するにはどうすればよいですか?
- 12. Windowsサービスで共有ネットワークフォルダにアクセスできるようにするにはどうすればよいですか?
- 13. 管理共有メモリセグメントに同期メカニズムを作成するにはどうすればよいですか?
- 14. ドメイン間の共有データ - ドメイン間で共有されるデータ
- 15. 兄弟vue.jsコンポーネント間でデータを共有するにはどうすればよいですか?
- 16. ブロック内のスレッド間で共通の値を共有するにはどうすればよいですか?
- 17. Azure関数間で共通のコードを共有するにはどうすればよいですか?
- 18. 2つのマイクロサービス間でRESTサービス間でエンティティを共有するにはどうすればよいですか?
- 19. 共有ツリーデータ構造のスレッド同期をどのように処理すればよいですか?
- 20. gulp.watch複数のタスクを同期させるにはどうすればいいですか?
- 21. コードを同期させずに、Javaのリソースへのアクセスをどのように共有しますか?
- 22. Google App Engineのページ間でデータを共有するにはどうすればいいですか?
- 23. 異なるラムダ間でデータを共有するにはどうすればいいですか?
- 24. どのように同期タスクを非同期にするのですか?
- 25. 別のアプリケーションドメインで実行されているアプリケーション間でキャッシュされたデータを共有するにはどうすればよいですか?
- 26. GCDWebServerBodyReaderCompletionBlockを同期させるにはどうすればいいですか?
- 27. Firebaseデータベースコールを同期させるにはどうすればいいですか?
- 28. perforceとgit reposの間でファイルを同期させるにはどうすればいいですか
- 29. Firebase JobDispatcherで定期的なタスクの期間を設定するにはどうすればいいですか?
- 30. 非同期メソッドと同期メソッドで同じインターフェイスを共有するにはどうすればよいですか?
https://msdn.microsoft.com/library/system.threading.mutex(v=vs.110).aspx –
これは 'Mutex.OpenExisting'です。どういう意味ですか? – fluter