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 回答