马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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/ |