私のプロジェクトでは処理速度が非常に重要であるため、最初の機能はデータベースにいくつかの行をロードし、2番目の機能は指定された数のスレッドを使用してそれらの行を処理しています。マルチスレッドを使用しないオプション。
問題は、プロセスの実行を停止するオプションを追加したいということです。つまり、問題が発生した場合に現在のスレッドをすべて停止して、ユーザーが別のスレッド番号を指定して実行を再開できるようにしますが、私の Windows フォームはフリーズして実行しているようです。すべてのスレッドが正常に作業を終了した後、停止メソッドに入ります。
ボタンクリックイベントの処理の詳細については、すべてのスレッドを開始し、その後すべてのスレッドをループしています
for (int i = 0; i < threads.Length; i++)
{
threads[i].Join();
}
while in ボタン クリック イベント for stop I
for(int i=0;i<threads.Length;i++)
{
if(threads[i].IsAlive)
threads[i].Abort();
}
結合部分にコメントを付けると、インターフェイスが応答してイベントのクリックを停止できることに気付きました。
しかし、すべてのスレッドの実行が終了した瞬間を区別したいので、私はそれをしたくありません。