这种同步方法通常可以用在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事件对象句柄)
多线程同步,分享一个基于事件对象的多线程同步源码