我想知道是否可以使用线程名称中止(脏路)一个线程?这是一些示例代码:
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();
感谢
答案 0 :(得分:6)
为什么不简单地使用字典将线程名存储到线程映射中,只需从任何地方杀死。
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();
答案 1 :(得分: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();
}