找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3189|回复: 0

[教程源码] [转载][361度]给子线程传递多个数据

[复制链接]
  • 打卡等级:武林至尊

1087

主题

2143

回帖

4337

积分

院长

鲜花
9
猫粮
7540
QQ
发表于 2018-10-11 20:04:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

361度窗口插件中的给线程传递数据的函数PostThreadData和RecvThreadData是向队列发送数据和从队列接收数据,所以可以给一个线程收发多个数据。通常队列里能放的数据数量是有限的,这里也一样,放一个数据进去队列里就多了一个数据,取一个数据出来队列里就少了一个数据,满了就放不进去了,或者把最先放进去的覆盖了。队列的规则是先进先出,也就是说,如果向一个队列放进了多个数据,从队列中取出数据的顺序和放进数据的顺序相同,就像生活中的排队买票一样。给子线程传递过个数据的例子如下:


[按键精灵] 纯文本查看 复制代码
For 3
    '创建线程
    tid = BeginThread(MyThread)
    '给一个线程发送三个线程数据,第一个是线程ID,第二个、第三个分别是字符串“数据1”和“数据2”
    Call Plugin.WndEx7_20.PostThreadData(tid, tid, 0)
    Call Plugin.WndEx7_20.PostThreadData(tid, "数据1", 0)
    Call Plugin.WndEx7_20.PostThreadData(tid, "数据2", 0)
Next
Sub MyThread()
    '接受当前线程的数据,用循环等待保证数据接收到,由于要接收三个数据,所以三次循环等待接收
    While Plugin.WndEx7_20.RecvThreadData(data1) <> 0
        Delay 50
    Wend
    While Plugin.WndEx7_20.RecvThreadData(data2) <> 0
        Delay 50
    Wend
    While Plugin.WndEx7_20.RecvThreadData(data3) <> 0
        Delay 50
    Wend
    MsgBox "接收到的线程数据:" & CStr(data1) & "," & data2 & "," & data3, 4096
End Sub

脚本中使用的361度窗口插件下载:
http://pan.baidu.com/s/1ntQswaP

本文转载于361度插件作者博客
http://bg361.blog.163.com/
楼主热帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-12-28 04:50

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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