易语言在线程中连接服务器源码
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 连接成功, 逻辑型
.子程序 _按钮1_被单击
按钮1.禁止 = 真 ' //先禁止按钮,以免重复点击
处理事件 ()
' //------------------------
连接成功 = 假
创建超时线程 (&线程子程序, 到整数 (编辑框_时间.内容))
' //------------------------
信息框 (“连接成功=” + 到文本 (连接成功), #信息图标, , )
按钮1.禁止 = 假
.子程序 线程子程序
连接成功 = 客户1.连接 (编辑框_IP.内容, 到整数 (编辑框_端口.内容))
.子程序 创建超时线程, , , 用API创建线程,超出时间自动销毁.By:邓学彬(泪闯天涯)
.参数 子程序指针, 子程序指针, , 线程子程序的指针
.参数 超时时间, 整数型, , 单位为毫秒,1秒=1000毫秒
.局部变量 hThread, 整数型, , , 线程句柄
.局部变量 dwRet, 整数型
.局部变量 dwMilliseconds, 整数型
.局部变量 dwWakeMask, 整数型
.局部变量 nTickCount, 整数型
' //用API创建线程,超出时间自动销毁.By:邓学彬(泪闯天涯)
nTickCount = GetTickCount () ' //取启动时间
dwMilliseconds = 超时时间 ' //超时值
dwWakeMask = 位或 (#QS_ALLINPUT, #QS_ALLEVENTS, #QS_SENDMESSAGE, #QS_ALLPOSTMESSAGE, #QS_MOUSE)
hThread = CreateThread (0, 0, 到整数 (子程序指针), 0, 0, 0) ' //创建线程
.判断循环首 (hThread ≠ 0)
' //调用API等待对象
dwRet = MsgWaitForMultipleObjects (1, hThread, 0, dwMilliseconds, dwWakeMask)
.判断开始 (dwRet = #WAIT_OBJECT_0) ' //执行完成
跳出循环 ()
.判断 (dwRet = #WAIT_TIMEOUT) ' //超时
TerminateThread (hThread, 0) ' //销毁线程
跳出循环 ()
.判断 (GetTickCount () - nTickCount > dwMilliseconds) ' //超时
TerminateThread (hThread, 0) ' //销毁线程
跳出循环 ()
.默认
处理事件 ()
延时 (10)
.判断结束
.判断循环尾 ()
CloseHandle (hThread) ' //关闭句柄,释放资源
易语言用户反馈服务器源码
易语言服务器源码
源代码在线连接
易语言链接服务器