Как приостановить работающий поток с помощью Win32 API? - PullRequest
0 голосов
/ 19 апреля 2010

Вот оно

  1. Создать поток в приостановленном состоянии.

    hThrd1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadProc1, (LPVOID)
    &obj1, CREATE_SUSPENDED, &dwFirstThreadID);
    
  2. При необходимости возобновляйте тему

    ResumeThread(hThrd1);
    

Как мне приостановить этот запущенный поток. Я могу возобновить его через некоторое время, но я хочу приостановить его сейчас.

Я позвонил

    SuspendThread(hThrd1);

Тем не менее цикл for в ThreadProc продолжает работать. Теперь, как мне этого избежать? Также предложите мне любые альтернативы.

1 Ответ

2 голосов
/ 19 апреля 2010

У меня проблема.Первоначально поток HANDLE hThrd1 был объявлен внутри WndProc.Так как WndProc вызывается снова и снова, РУЧКА, которую я получил во время CreateThread, была не той, что была передана приостановить поток(Это была неловкая ошибка)

Теперь я объявил об этом во всем мире.Это решает проблему и работает как задумано.

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