线程池类模块例程

易语言 2020-09-01 19:42:51

线程池类模块例程

.判断循环首 (内部参数一 ≠ 0)
.如果 (GetQueuedCompletionStatus (内部参数一, 任务参数一, 任务参数二, 内部参数二, -1) = 1)
.如果 (内部参数二 < 0)
跳出循环 ()
.否则
call (内部参数二, 任务参数一, 任务参数二)
.如果结束

.否则
跳出循环 ()
.如果结束

.判断循环尾 ()
.如果真 (内部参数二 = -2)
SetEvent (任务参数一)
CloseHandle (内部参数一)

.如果真 (线程池_状态 ≠ 1)
返回 (假)
.如果真结束
线程池_状态 = 2
.计次循环首 (线程池_线程数 - 1, )
PostQueuedCompletionStatus (线程池_IOCP, 0, 0, -1)
.计次循环尾 ()
hEvent = CreateEvent (0, 1, 0, 到文本 (线程池_IOCP))
ResetEvent (hEvent)
PostQueuedCompletionStatus (线程池_IOCP, hEvent, 0, -2)
.判断循环首 (WaitForSingleObject (hEvent, 100) = 258)
处理事件 ()
.判断循环尾 ()
CloseHandle (hEvent)
线程池_状态 = 0