如何在后台运行void函数

loading...


0

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

loading...

1回答

  • 0

    Not Responding 在程序落入 infinite loop 时发生 .

    在你的程序中,你在 runCode 方法中使用了无限循环 .

    thread 用于 infinite loop 或其他时,这将被修复 .

    所以我建议你使用 thread .

评论

暂时没有评论!