防重複啓動多線程程序退出後無法再次啓動問題

          寫了個多線程防二次啓動的程序,線程裏有個Sleep(300000)等待五分鐘,退出程序發現進程還在,無法再次啓動。

UINT ThreadTest(LPVOID lpParam)
{     //Todo
     Sleep(300000);
}

 

程序死在Sleep那,必須等五分鐘才退出。最後想出了個辦法。把Sleep(300000)分成多份執行。

 

首先定義全局變量

    BOOL b_isThreadRun=TRUE;//線程運行標誌

UINT ThreadTest(LPVOID lpParam)
{     //Todo
	int count =300000/10;
	for (int i = 0; i < count; i++)
	{
		if (b_isThreadRun)
		{
			Sleep(10);
		}else
		{
			break;
		}
	}
   return 0;
}

在程序退出地方將

b_isThreadRun =FALSE;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章