多线程在按键精灵中的应用 下载本文

内容发布更新时间 : 2024/11/14 23:40:15星期一 下面是文章的全部内容请认真阅读。

个人 认为 多线程没什么复杂的

重要的在于参数传递

一个线程返回一个线程ID

如果你要想在子程序里面暂停他就得把线程的ID传递进去 才能暂停

因为普通变量的参数传递不到线程中 所以很多人就觉得在线程中无法暂停线程

比如

1. a=BeginThread(程序1)

2. b=BeginThread(程序2)

3. sub 程序1

4.

5. end sub

6.

7. sub 程序2

8.

9. end sub

复制代码

这是2个线程 在线程中 我们是无法暂停线程的只能在线程外暂停

因为他的线程ID是无法传递进线程中得 所以没法暂停 找不到目标 这就是很多人不明白为什么线程中无法暂停线程的原因

如果还不理解 那么大家看看另一个

a=BeginThread(程序1)

b=BeginThread(程序2)

MessageBox a

sub 程序1

MessageBox a

end sub

sub 程序2

end sub

[/code]

这个线程多线程 中会弹出2个窗口 弹出的是第一个线程返回的值

弹出的2个值我们会发现不一样 因为多线程中参数没有传递进去所以弹出的是空白

而另一个在线程外所以就值了

我们就会发现每个线程运行都会返回一个线程ID

因为 线程返回的值存入的变量是普通变量 无法传递进去所以在线程中我们暂停 或者停止都是无效的

但是我们把 返回值定义成 环境变量就能传递进去了

DimEnv a

a=BeginThread(程序1)

b=BeginThread(程序2)

MessageBox a

sub 程序1

MessageBox a

end sub

sub 程序2

//这里是我要运行的代码

end sub

[/code]

这样在线程中和线程外弹出的值就是一样的

那么我们就能随意停止线程了

不管你在哪个线程中暂停都会停止线程

这样一来多线程就很容易理解了

我们只需要搞清楚 在多线程中运行的多线程 主线程停止子线程是不会停止的

多线程中 调用子程序会停止就可以了

那么什么三线程 四线程 10线程都是浮云了

比如:

1. DimEnv a

2. DimEnv b

3. DimEnv c

4. a=BeginThread(程序1)

5. b=BeginThread(程序2)

6.

7. sub 程序1

8. StopThread a

9. c=BeginThread(程序3)

10. end sub

11.

12. sub 程序2

13. //这里是我要运行的代码

14. end sub

15.

16. sub 程序3

17. //当线程a停止时我不会停止 我还会继续运行

18. end sub

复制代码

这样 当 线程a 停止的时候 线程c是不会停止的 他还会继续运行

1. DimEnv a

2. DimEnv b

3. DimEnv c

4. a=BeginThread(程序1)

5. b=BeginThread(程序2)