如何在后台运行void函数

时间:2018-12-10 11:09:05

标签: visual-c++

我创建了一个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
   }
}

1 个答案:

答案 0 :(得分:0)

Not Responding在程序陷入无限循环时发生。

在程序中,您在runCode方法中使用了无限循环。

当您将thread用于infinite loop或其他情况时,此问题将得到解决。

所以我建议您使用thread