易语言吧 关注:266,796贴子:1,667,175
  • 18回复贴,共1

多线程问题

只看楼主收藏回复


两个子程序都启动线程为什么只运行一个。
代码二楼。


IP属地:广西1楼2015-09-02 10:09回复
    .版本 2
    .支持库 xplib
    .支持库 EThread
    .支持库 spec
    .程序集 窗口程序集_启动窗口
    .程序集变量 许可证, 整数型
    .程序集变量 dm, 类_大漠插件
    .子程序 __启动窗口_创建完毕
    dm.初始_注册大漠插件 ()
    dm.初始_创建大漠多线程 ()
    dm.基本_设置全局路径 (, 取运行目录 ())
    dm.文字_设置字库 (, 0, “111.txt”)
    XP风格 (3)
    许可证 = 创建进入许可证 ()
    .子程序 子程序1
    .参数 参数1, 整数型
    .局部变量 坐标x, 整数型
    .局部变量 坐标y, 整数型
    .局部变量 是否循环, 逻辑型
    是否循环 = 真
    .判断循环首 (是否循环 = 真)
    进入许可区 (许可证)
    dm.文字_找字 (, 0, 0, 2000, 2000, “里面断网”, “caae89-000000”, 0.8, 坐标x, 坐标y)
    .判断开始 (坐标x = -1)
    调试输出 (“没有找到1”)
    .默认
    超级延时3 (200)
    dm.鼠标_移动 (, 坐标x, 坐标y)
    超级延时3 (200)
    dm.鼠标_按下左键 ()
    ' 超级延时3 (500)
    ' dm.鼠标_按下左键 ()
    超级延时3 (1000)
    .判断结束
    超级延时3 (500)
    退出许可区 (许可证)
    .判断循环尾 ()
    .子程序 子程序2
    .参数 参数2, 整数型
    .局部变量 坐标x, 整数型
    .局部变量 坐标y, 整数型
    .局部变量 是否循环, 逻辑型
    是否循环 = 真
    .判断循环首 (是否循环 = 真)
    进入许可区 (许可证)
    dm.文字_找字 (, 0, 0, 2000, 2000, “没进去”, “caae89-000000”, 0.8, 坐标x, 坐标y)
    .判断开始 (坐标x = -1)
    调试输出 (“没有找到”)
    .默认
    超级延时3 (200)
    dm.鼠标_移动 (, 坐标x + 2, 坐标y + 2)
    超级延时3 (200)
    dm.鼠标_按下左键 ()
    ' 超级延时3 (500)
    ' dm.鼠标_按下左键 ()
    超级延时3 (1000)
    .判断结束
    超级延时3 (500)
    退出许可区 (许可证)
    .判断循环尾 ()
    .子程序 启动
    启动线程 (&子程序1, 1, )
    启动线程 (&子程序2, 2, )
    .子程序 __启动窗口_将被销毁
    删除进入许可证 (许可证)
    结束 ()
    .子程序 _按钮1_被单击
    启动 ()


    IP属地:广西2楼2015-09-02 10:10
    回复
      2025-07-13 20:45:29
      广告
      啧,代码太乱看不清楚,而且也没看到是怎么启动的,截图不好么?


      来自Android客户端4楼2015-09-02 10:29
      收起回复
        建议你不要使用 XP风格


        来自Android客户端6楼2015-09-03 03:03
        收起回复
          楼主先解释什么叫许可证?你自己都不明白,哪能找到问题所在?一眼就看出问题了
            -- 有问题为什么不问问百度、google、bing、360……呢?


          来自Android客户端7楼2015-09-03 19:15
          收起回复
            你的电脑配置只能运行一个线程


            IP属地:北京8楼2015-09-03 20:43
            收起回复
              哎哎 什么叫许可证 ?
              许可证就是启动线程时 每一个许可证只能一条线程进入.
              也就是说 你1线程进入了 1线程没退出之前 2线程在等待状态.
              也就是就每个许可证只能一条线程进入...
              而你的程序只有一个许可证 然而每次执行的只有一条线程
              方法 : 每条线程分配个许可证即可.
              即 线程1就是
              许可证1 = 创建进入许可证 ()
              进入许可区 (许可证1)
              我是子程序
              退出许可区 (许可证1)
              删除进入许可证 (许可证1)
              即 线程2就是
              许可证2 = 创建进入许可证 ()
              进入许可区 (许可证2)
              我是子程序
              退出许可区 (许可证2)
              删除进入许可证 (许可证2)


              9楼2015-09-03 23:21
              收起回复
                轻轻的我来了
                  -- 有问题为什么不问问百度、google、bing、360……呢?


                IP属地:内蒙古来自iPhone客户端10楼2015-09-04 01:53
                回复
                  2025-07-13 20:39:29
                  广告
                  这是多线程……


                  IP属地:重庆来自Android客户端11楼2015-09-04 08:08
                  回复
                    楼主加群,里面有很多大神解答,而且很热心,不会排斥小白 欢迎加入易语言学习交流讨论,群号码:435917212


                    12楼2015-09-04 21:54
                    回复