Aforge(ビデオライブラリです)をベースにプログラムを作りました。このライブラリは、カメラからの次のビデオ フレーム用に独自の更新イベントを作成します。これまでのところ、以前の人々がマルチスレッド化で私を助けてくれたので、これらの Aforge スレッドはメイン プログラム スレッドに報告できるようになりました。
コードはここで見ることができます: how to do multithreading when using outside referenced code。
しかし今では、定期的に新しいプログラム エラーに気付きます。プログラムを終了したいときに問題が始まります。現時点では、Aforge スレッドがまだアクティブである可能性があります。そして閉じたメインフォームに書き戻したい。
プログラムを閉じる前に、どういうわけか他のスレッドを停止する必要があります。Aforge にはカメラ停止などを行うオプションがありますが、それだけでは十分ではありません。しかし、それでも私のコードは、すでに閉じているメインフォームに書きたいと思っています。
すべてのスレッドを停止する方法、または元のスレッドから安全に閉じる方法はありますか? メイン プログラムへのバック レポートを try catch 構造に配置しましたが、うまく機能しませんでした。これらの状況で停止する唯一の方法は、Visual Studio 自体の実行停止ボタンを押すことです。