3

スレッド名を使用してスレッドを中止 (汚い方法) できるかどうか疑問に思っていましたか? ここにいくつかのコード例があります:

public void blah() {
   int TableID = 4; //set by the using at runtime

   Thread myThread = new Thread(() => beginUser(picture));
   myThread.Name = Convert.ToString(TableID);
   myThread.Start();
}

だから今、私はスレッドを作成しました。プログラムの後半で、ユーザーがスレッドを終了する可能性があります。ここで私の質問が入ります。名前を介してスレッドを終了するにはどうすればよいですか? またはおそらくそれを終了する別の方法ですか?バックラウンド ワーカーを使用したくありません。

例:myThead[4].Abort();

ありがとう

4

2 に答える 2

7

辞書を使用してスレッド名からスレッドへのマッピングを保存し、必要な場所から強制終了するだけではどうですか。

Dictionary<string, Thread> threadDictionary = new Dictionary<string, Thread>();
Thread myThread = new Thread(() => beginUser(picture));
myThread.Name = Convert.ToString(TableID);
myThread.Start();
threadDictionary.Add("threadOne", myThread);

threadDictionary["threadOne"].Abort();
于 2013-10-10T06:49:48.573 に答える
3

私はあなたが何を意味するのか分かりません。後で別のメソッドでスレッドを中止しますか? その場合、これはうまくいくはずです:

Thread myThread;    
public void blah() {
   int TableID = 4; //set by the using at runtime

   myThread = new Thread(() => beginUser(picture));
   myThread.Name = Convert.ToString(TableID);
   myThread.Start();
}

public void blub() {
   myThread.Abort();
}
于 2013-10-10T06:50:30.277 に答える