查看: 18|回复: 0

[易语言] Event模块实现多线程暂停/继续源码

[复制链接]

1010

主题

1010

帖子

3073

积分

网站编辑

Rank: 8Rank: 8

积分
3073
发表于 4 天前 | 显示全部楼层 |阅读模式
  1. .版本 2
  2. .支持库 EThread
  3. .支持库 spec

  4. .子程序 开始线程任务
  5. .局部变量 i, 整数型
  6. .局部变量 handle, 整数型
  7. .局部变量 线程数组, 整数型, , "0"

  8. ' 创建线程
  9. .计次循环首 (20, i)
  10.     启动线程 (&线程处理, i, handle)
  11.     加入成员 (线程数组, handle)
  12. .计次循环尾 ()
  13. ' 等待线程结束
  14. .判断循环首 (取数组成员数 (线程数组) > 0)
  15.     .如果真 (_WaitForSingleObjectEx (线程数组 [1], -1, 真) = 0)
  16.         删除成员 (线程数组, 1, 1)
  17.     .如果真结束

  18. .判断循环尾 ()
  19. ' 重置标识
  20. 开始按钮.标题 = “开始”
  21. 开始事件.clear ()
  22. 停止事件.set ()
  23. 信息框 (“停止了”, 0, , )

  24. .子程序 _停止按钮_被单击
  25. .局部变量 开始状态, 逻辑型
  26. .局部变量 停止状态, 逻辑型

  27. 开始状态 = 开始事件.get ()
  28. 停止状态 = 停止事件.get ()
  29. ' 理论上下面这行放到线程结束设置
  30. .' 如果真 (开始状态 或 停止状态 = 假)
  31.     ' 开始状态 = 开始事件.get ()
  32.     ' 停止状态 = 停止事件.get ()
  33.     ' 开始按钮.标题 = “开始”
  34. .如果真结束

  35. ' 给时间线程退出
  36. 停止事件.set ()
  37. 开始事件.set ()
  38. 延时 (1000)
  39. 开始事件.clear ()

  40. .子程序 线程处理
  41. .参数 i, 整数型

  42. .判断循环首 (真)
  43.     .如果真 (停止事件.get ())
  44.         ' 结束线程
  45.         跳出循环 ()
  46.     .如果真结束
  47.     开始事件.wait ()  ' 事件状态为假,就会暂停一直卡着,直到状态为真继续会立马执行下一句
  48.     调试输出 (“线程:” + 到文本 (i))
  49.     延时 (1000)
  50. .判断循环尾 ()
  51. 调试输出 (“退出线程”)
复制代码

Event模块实现多线程暂停/继续源码

Event模块实现多线程暂停/继续源码

多线程暂停_继续.zip

60.04 KB, 下载次数: 0

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表