私は、DSPACKコンポーネントライブラリを使用するDelphi 6 DirectShowプッシュソースビデオフィルタを用意しています。特定の操作を実行する前にフィルターのどの部分をフィルター状態にロックする必要がありますか?たとえば、私のフィルタのFillBuffer()メソッドでは、ビットマップキャンバスを書き込む前にフィルタの共有状態をロックする必要がありますか?または、共有状態をロックする必要があるフィルタピンの接続/切断イベントやメディア形式のネゴシエーションなどの操作だけですか?DirectShowフィルタの共有状態をロックすることについて、いつ心配する必要がありますか?
0
A
答えて
2
アトミック操作を確実にするために、フィルタをロックします(フィルタ固有ではなく、マルチスレッド環境の任意のオブジェクトに適用されます)。通常は、データアクセスまたはアクションのシリアライズのいずれかです。
たとえば、CTransformFilter
クラスには、2つのクリティカルセクション、m_csFilter
およびm_csReceive
があります。
m_csFilter
1つのスレッドが何かを変えている間、他のスレッドが同時に同じデータには触れていないことを確認するために、データの状態を保護します。もう1つは、m_csReceive
が受信イベントとストリーム終了イベントをシリアライズするために使用されます。
操作が並行スレッドのアクションによって中断されないようにする必要がある場合は、フィルター状態をロックする必要があります。あなたのロックが他のスレッドを遅らせる可能性があるので、あなたは...他のスレッド上で可能な実行など、わずかに影響を与えるために、ロックに
関連する問題
- 1. ActiveRecordのロックについてはいつ心配する必要がありますか?
- 2. このエラーログについて心配する必要がありますか?
- 3. NSUserDefaultsの衝突について心配する必要がありますか?
- 4. Flask(WSGI)でグローバルシングルトンを使用すると、競合状態を心配する必要がありますか?
- 5. Checkstyle:なぜ開発者としてそれについて心配する必要がありますか?
- 6. iOSアプリケーションのスレッドセーフについて心配する必要はいつですか?
- 7. Tomcat Spring Beanとの並行性について心配する必要はありますか?
- 8. ウェブサイトの偽アカウント/ログインについて心配する必要がありますか?
- 9. ASP.NET MVC 3.コンテナの廃棄について心配する必要がありますか?
- 10. MySQLデータベースの負荷について心配する必要がありますか?
- 11. ここで状態パターンを適用する必要がありますか?
- 12. なぜwatir-webdriverとfirefoxを使用してスリープ状態になるか待つ必要がありますか?
- 13. LINQ(クエリ言語)のアップグレードパスについて心配する必要があります
- 14. MVCとプログラムの状態 - モデルをダムにする必要がありますか?
- 15. フラッシュのスレッドの安全性について心配する必要はありますか?
- 16. 大量のデータをWindowsのクリップボードに保存することについて心配する必要がありますか?
- 17. この警告メッセージで心配する必要がありますか?
- 18. フロートをいつクリアする必要がありますか?
- 19. いつオブジェクトをリリースする必要がありますか?
- 20. ブロックをいつコピーする必要がありますか?
- 21. IIS7:状態サーバーを持つアプリケーション間でセッションを共有する
- 22. Webサイトのビジネスレイヤがセッション状態にアクセスする必要がありますか?
- 23. コアデータにアプリの状態を維持する必要がありますか?
- 24. モバイルアプリでスパムを心配する必要はありますか?
- 25. コードアクセスセキュリティ(CAS)について学ぶ必要がありますか?
- 26. CTCallCenterをいつどこから解放する必要がありますか?
- 27. NSUserDefaultsDidChangeNotificationは、いつ実行する必要がありますか。
- 28. ストリームはいつ遅延する必要がありますか?
- 29. いつエンティティマネージャを閉じる必要がありますか?
- 30. MVC Razorで共有@helper関数をどこに配置する必要がありますか?
[OK]を感謝し、最小限の時間を保持することが期待されています。私は、特定の重要な操作が進行中であることを私のコード外のレイヤーでDirectShowに伝える必要がある「特別な」セマフォーかもしれないと考えました。それはちょうど標準的な同期シナリオであるあなたの説明のように聞こえる。 –