【发布时间】:2020-08-16 20:04:04
【问题描述】:
我已经在 c# 中启动了一个线程,但我希望能够中止它,但我真的不知道该怎么做。
private void createThread(){
Thread threadDraw = new Thread(new ThreadStart(myMethod /*Starts a class which loops for a long time*/ ));
threadDraw.Start();
if(myBool == false) {theadDraw.Abort();}
}
myMethod 正在启动一个循环运行的类。问题是,我希望能够通过按键停止循环(在我的情况下)。目前,我已经尝试过
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
/* Checks space press, if space press: make myBool = false */
}
它将 myBool 更改为 false 并且该方法本身有效。
这里的问题是,createThread() 不会不断检查myBool 是否为假,因此不会停止。
我也试过
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
/*checks for spacepress, then {threadDraw.Abort()} */
}
但它也不起作用,我尝试在 createThread 上将 private 替换为 public,但仍然不起作用。
此外,我一直在考虑在类中创建一个 KeyDown()-method 并在循环中有一个 break; 但要么我做错了(可能),要么就是不可能。
【问题讨论】:
-
这能回答你的问题吗? How to kill a thread instantly in C#?
标签: c#