DSPACK コンポーネント ライブラリを使用して Delphi 6 で記述された DirectShow フィルタがあります。現在、FillBuffer() 呼び出しの先頭でその目的のために作成された同期 obj を使用してフィルター状態をロックし、最後に解放します ( try/finally コンストラクトのfinallyセクション内)。FillBuffer() 呼び出しは、データ生成タスクを満たすスレッドによって解放される WaitForSingleObject() 呼び出しを介して、新しいデータが送信されるのを待っている間にブロックされる可能性があるため、これは悪い考えですか? FillBuffer() 呼び出しが (比較的) 長時間ブロックされると、フィルターまたはフィルター グラフ全体に悪影響を及ぼす可能性があることを懸念しています。