Уроки Iczelion'а




Урок 16. Объект события - часть 2


WaitForSingleObject proto hObject:DWORD, dwTimeout:DWORD

  • hObject --> Хэндл одного из синхронизационных объектов. Объект события - это вид синхронизационного события.
  • dwTimeout --> Указывает в миллисекундах время, которое эта функция будет ждать, пока объект события не перейдет во включенное состояние. Если указанное время пройдет, а объект события все еще выключен, WaitForSingleObject вернет управление. Если вы хотите, чтобы функция наблюдала за объектом бесконечно, вы должны указать значение INFINITE в качестве этого параметра.
  • Пpимеp:

    Нижеприведенный пример отображает окно, ожидающее пока пользователь не выберет какую-нибудь команду из меню. Если пользователь выберет "run thread", тред начнет подсчет. Когда он закончит, появится сообщение, информирующее пользователя о том, что работа выполнена. Во время того, как проводится подсчет, пользователь может выбрать команду "stop thread", чтобы остановить тред.

    .386 .model flat,stdcall option casemap:none WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib

    includelib \masm32\lib\kernel32.lib

    .const

    IDM_START_THREAD equ 1 IDM_STOp_THREAD equ 2 IDM_EXIT equ 3 WM_FINISH equ WM_USER+100h

    .data ClassName db "Win32ASMEventClass",0

    AppName db "Win32 ASM Event Example",0 MenuName db "FirstMenu",0 SuccessString db "The calculation is completed!",0 StopString db "The thread is stopped",0

    EventStop BOOL FALSE

    .data?

    hInstance HINSTANCE ? CommandLine LpSTR ? hwnd HANDLE ? hMenu HANDLE ?

    ThreadID DWORD ? ExitCode DWORD ? hEventStart HANDLE ?

    .code start: invoke GetModuleHandle, NULL

    mov hInstance,eax invoke GetCommandLine mov CommandLine,eax invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT

    invoke Exitprocess,eax

    WinMain proc

    hInst:HINSTANCE,hprevInst:HINSTANCE,CmdLine:LpSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG mov wc.cbSize,SIZEOF WNDCLASSEX




    Содержание  Назад  Вперед