Добрый день. Подскажите пожалуйста в чем ошибка? По идее поток не должен выполняться, но он выполняется и "выдает единички" Не могу понять как работает "invoke SuspendThread" Подскажите пожалуйста. Код (Text): .586 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc include \masm32\include\masm32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\masm32.lib tread_01 proto .data ptread01 db '---------- 1',13,10,0 pThread1 dd 0 .code start: mov eax, offset tread_01 invoke CreateThread, NULL, NULL, eax, NULL, NULL, pThread1 invoke CloseHandle,eax invoke SuspendThread, pThread1 ; << тут остановка потока, но она НЕ срабатывает .while 1 invoke Sleep, 300 .endw invoke ExitProcess,0 ;========================================================= tread_01 proc .while 1 invoke StdOut, addr ptread01 invoke Sleep, 300 .endw ret tread_01 endp end start ... или как иначе приостановить выполнения потока? Спасибо
__sheva740, Если поток не создан, он не может быть заморожен. Надо бы наверно проверять на результат выполнения. Хотя немного иначе, будет передан pnull, на некоторых версиях нельзя этот аргумент обнулять. Но даже если поток будет создан как выше сказали любые манипуляции в юм выполняются по описателю, а не ID. Так что ошибки две.