0

自分では理解できない、奇妙ではあるが理解できるエラー解決策に遭遇しました。System::Threading::Threadこのような関数を実行するスレッドを作成しています:

try
{
   perform_adapt_rgb(alg);
   Control::Invoke(adpt_deg2);
}
   catch ( ThreadAbortException^ e ) 
{
   Control::Invoke(adpt_deg2);
   //Thread::ResetAbort();
}   

複雑にするのは意味がないので、すべてを貼り付けていません。UI の更新を呼び出します。問題は、void perform_adapt_rgb(int alg); の場合に発生します。関数はサイクルの OMP をカプセル化し、thread->Abort(); によって UI からプロセスを強制終了しようとします。関数。Visual Studio 内でテストしている間、すべて正常に動作しますが、exe ファイルから実行すると、アプリケーションが応答していないことが示されます -> 解決策を待ち、ダイアログを閉じます。今、私の推測では、サイクルの OMP-ed を予期せず終了させることが問題の原因であると推測されますが、デバッグできる VS で機能するため、完全にはわかりません。OMP がなくてもすべて正常に動作します。誰かが私にその回避策を教えてもらえますか?

4

1 に答える 1