Для остановки длительного сильно нагруженного процесса можно использовать простую технику контроля наличия файла с определенным именем в определенном месте диска.

Ниже приведен пример программы, которая в цикле выполняет 100 тыс. операций.

Имеется подпрограмма, которая мониторит наличие файла c:\labpp\stop.txt.

Если такой файл появился - программа его удаляет и запрашивает пользователя следует ли ей остановить процесс выполнения.

Файл может создаваться .bat файлом с размещением его, например, на рабочем столе.

В отличии от окна управления процессом, такой способ наиболее четко гарантирует остановку программы из любого положения.


int main()

{

   int i = 0, j=0;

   int ires;

   for (i = 0; i < 100000; i++, j++)

   {

      if (j >= 10000)

      {

         j = 0;

         сoutvar << i;

      }

      if (check_user_break()) {

         break;

      }

   }

}


bool check_user_break()

{

   string stopfilename = "c:\\labpp\\stop.txt";

   bool bexist = false;

   shell_func("file", "is_exist", stopfilename, bexist);

   if (bexist)

   {

      shell_func("file", "delete", stopfilename);

      if (tsalert(-3, "Запрос", "Остановить выполнение?", "", "Да", "Нет") == 1)

      {

         return true;

      }

   }

   return false;

}