这种同步方法通常可以用在post中,拨号前先同步可能避免数据没有返回就启动了拨号
需要调用到四个windows API函数
CreateEvent
ResetEvent
SetEvent
WaitForSingleObject
.版本 2
.支持库 EThread
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
全_post事件对象句柄 = CreateEvent (0, 真, 假, “post事件对象”)
ResetEvent (全_post事件对象句柄)
.子程序 _按钮1_被单击
.局部变量 局_线程句柄, 整数型
编辑框1.内容 = “”
ResetEvent (全_post事件对象句柄)
启动线程 (&子程序_启动, , 局_线程句柄)
关闭线程句柄 (局_线程句柄)
.子程序 子程序_启动
.局部变量 局_计次, 整数型
.局部变量 局_线程句柄, 整数型
.计次循环首 (5, 局_计次)
启动线程 (&子程序_工作线程, 局_计次, 局_线程句柄)
关闭线程句柄 (局_线程句柄)
处理事件 ()
程序_延时 (1)
.计次循环尾 ()
.子程序 子程序_工作线程
.参数 参_线程数
编辑框1.加入文本 (“事件无信号,请点击【放行】按钮--线程【” + 到文本 (参_线程数) + “】等待中...” + #换行符)
WaitForSingleObject (全_post事件对象句柄, -1)
编辑框1.加入文本 (“线程【” + 到文本 (参_线程数) + “】工作结束...” + #换行符)
.子程序 _按钮2_被单击
SetEvent (全_post事件对象句柄)
多线程同步,分享一个基于事件对象的多线程同步源码