Остановка процесса помещением файла в каталоге
Для остановки длительного сильно нагруженного процесса можно использовать простую технику контроля наличия файла с определенным именем в определенном месте диска.
Ниже приведен пример программы, которая в цикле выполняет 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;
}