我创建了一个Windows窗体应用程序(CLR项目)。当我单击开始按钮时,运行带while循环的void函数。但是问题是Windows窗体变得无响应(无响应)。我想做的是,我想在单击按钮时在后台运行该功能,并使其单击也停止,并能够使用Windows窗体。请帮忙。
我的代码如下:
bool isStarting = false;
btnStart_Click(System::Object^ sender, System::EventArgs^ e){
if(isStarting){
isStarting = false;
}else{
isStarting = true;
runCode(param1, param2, param3);
}
}
void runCode(param1, param2, param3){
while(isStarting){
//do something
}
}
答案 0 :(得分:0)
Not Responding
在程序陷入无限循环时发生。
在程序中,您在runCode
方法中使用了无限循环。
当您将thread
用于infinite loop
或其他情况时,此问题将得到解决。
所以我建议您使用thread
。