serhio61
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Моё почтение! По потокам просветите? Хочется приостановить\восстановить поток. На первый взгляд вроде всё просто CreateThread - SuspendThread - ResumeThread Да вот чтой-то лыжи не едут. Код: HWND hwndLBL_COUNT,hwndSUSP,hwndRESUME;//Глобалки текст. метки и кнопок на диалоге HANDLE hThr;//Это предмет вопроса DWORD WINAPI ThrFunc(LPVOID data)// Функция потока { char buf[5]; for (int x=0;x<1000;x++) { Sleep(10); itoa(x,buf,10); SetWindowText(hwndLBL_COUNT,buf); } MessageBox(0,"Конец","КОНЕЕЕЦ!",MB_OKCANCEL); return 0; } ................... //Действия по кнопкам на диалоге case IDOK: { hThr=CreateThread(NULL,0,ThrFunc,NULL,0,NULL); EnableWindow(hwndSUSP,TRUE); } case IDSUSPEND: { SuspendThread(hThr); EnableWindow(hwndSUSP,FALSE); EnableWindow(hwndRESUME,TRUE); } case IDRESUME: { ResumeThread(hThr); EnableWindow(hwndRESUME,FALSE); EnableWindow(hwndSUSP,TRUE); } .......................................... CloseHandle(hThr);//При закрытии диалога | Хочется-то малого... По IDOK - запустить - этот шаг успешен, на лейбле счётчик крутится По IDSUSPEND - остановить, вот прям чтобы счётчик встал - задница как раз здесь, окно диалога просто тихо закрывается По IDRESUME - продолжить отсчёт счётчика...........окна диалога нет, жаловаться не на что Всё не так просто? |