Как запустить функцию void в фоновом режиме - PullRequest
0 голосов
/ 10 декабря 2018

Я создал приложение Windows Form (CLR Project).Когда я нажимаю кнопку запуска, запускается функция void с циклом while.Но проблема в том, что форма окна перестает отвечать на запросы (не отвечает).Что я хочу сделать, так это то, что я хочу запускать функцию в фоновом режиме, когда нажимается кнопка, и останавливать ее одним щелчком мыши и иметь возможность использовать форму окна.Пожалуйста помоги.

Мой код выглядит так:

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 голосов
/ 10 декабря 2018

Not Responding происходит, когда программа попадает в бесконечный цикл .

В вашей программе вы использовали бесконечный цикл в методе runCode.

Это будет исправленокогда вы используете thread для infinite loop или еще.

Поэтому я предлагаю вам использовать thread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...