Реферат: Эффективная многопоточность
ULONG_PTR dwData // параметр APC функции
);
Рассмотрим небольшой пример ее использования (проверка ошибок устранена для повышения наглядности).
const int _SOME_MAGIC_VALUE = 5; DWORD CALLBACK trd1(LPVOID p) { HANDLE hEvent = (HANDLE)p; SetEvent(hEvent); int i = 0; while(i < _SOME_MAGIC_VALUE){ SleepEx(INFINITE, true); cout << i++ << endl; } return 0; } VOID CALLBACK APCProc(ULONG_PTR dwParam) { cout << "APC Proc #" << dwParam; cout << " threadid :" << GetCurrentThreadId() << endl; } int main() { HANDLE hEvent = CreateEvent(0, false, false, NULL); DWORD trd_id = 0; HANDLE hThread = CreateThread(0, 0, trd1, hEvent, 0, &trd_id); cout << "Thread id is 0x" << hex << trd_id << endl; WaitForSingleObject(hEvent, INFINITE); for(int i = 0;i < _SOME_MAGIC_VALUE;i++){ QueueUserAPC(APCProc, hThread, i); К-во Просмотров: 417
Бесплатно скачать Реферат: Эффективная многопоточность
|