私は、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. Node.jsのConcurrent Modificationについて心配する必要はありますか?
- 5. アプリケーションのタイムゾーンについて心配する必要はありますか?
- 6. Flask(WSGI)でグローバルシングルトンを使用すると、競合状態を心配する必要がありますか?
- 7. この422(Unprocessable Entity)エラーについて心配する必要がありますか? (Rails&Devise)
- 8. Checkstyle:なぜ開発者としてそれについて心配する必要がありますか?
- 9. iOSアプリケーションのスレッドセーフについて心配する必要はいつですか?
- 10. シングルトンをプログラム状態にする必要がありますか?
- 11. Tomcat Spring Beanとの並行性について心配する必要はありますか?
- 12. MySQLデータベースの負荷について心配する必要がありますか?
- 13. なぜCPythonのスレッドセーフティについて心配する必要がありますか?
- 14. ASP.NET MVC 3.コンテナの廃棄について心配する必要がありますか?
- 15. Webサービスから返されたURLの '&'について心配する必要があります
- 16. ウェブサイトの偽アカウント/ログインについて心配する必要がありますか?
- 17. ここで状態パターンを適用する必要がありますか?
- 18. なぜwatir-webdriverとfirefoxを使用してスリープ状態になるか待つ必要がありますか?
- 19. MVCとプログラムの状態 - モデルをダムにする必要がありますか?
- 20. フラッシュのスレッドの安全性について心配する必要はありますか?
- 21. LINQ(クエリ言語)のアップグレードパスについて心配する必要があります
- 22. API 16+では非2のテクスチャについて心配する必要はありますか?
- 23. 大量のデータをWindowsのクリップボードに保存することについて心配する必要がありますか?
- 24. React.jsの状態に関するいくつかの問題があります
- 25. 状態はどこで更新する必要がありますか?
- 26. この警告メッセージで心配する必要がありますか?
- 27. いつC#ベースクラスで辞書をロックする必要があるのですか?
- 28. いつオブジェクトをリリースする必要がありますか?
- 29. ブロックをいつコピーする必要がありますか?
- 30. フロートをいつクリアする必要がありますか?
[OK]を感謝し、最小限の時間を保持することが期待されています。私は、特定の重要な操作が進行中であることを私のコード外のレイヤーでDirectShowに伝える必要がある「特別な」セマフォーかもしれないと考えました。それはちょうど標準的な同期シナリオであるあなたの説明のように聞こえる。 –