欢迎来到天天文库
浏览记录
ID:32554102
大小:44.09 KB
页数:4页
时间:2019-02-12
《多线程在按键精灵中的应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、个人认为多线程没什么复杂的 重要的在于参数传递一个线程返回一个线程ID如果你要想在子程序里面暂停他就得把线程的ID传递进去才能暂停因为普通变量的参数传递不到线程中所以很多人就觉得在线程中无法暂停线程比如1.a=BeginThread(程序1)2.b=BeginThread(程序2)3.sub程序14.5.endsub6.7.sub程序28.9.endsub复制代码这是2个线程在线程中我们是无法暂停线程的只能在线程外暂停因为他的线程ID是无法传递进线程中得所以没法暂停找不到目标这就是很多人不明白为什么线程中无法暂停线程的原因如果还不理解那么大家看看另一个 a=BeginThread(
2、程序1)b=BeginThread(程序2)MessageBoxasub程序1MessageBoxaendsubsub程序2endsub[/code]这个线程多线程中会弹出2个窗口弹出的是第一个线程返回的值弹出的2个值我们会发现不一样 因为多线程中参数没有传递进去所以弹出的是空白而另一个在线程外所以就值了我们就会发现每个线程运行都会返回一个线程ID因为线程返回的值存入的变量是普通变量无法传递进去所以在线程中我们暂停或者停止都是无效的但是我们把返回值定义成环境变量就能传递进去了DimEnvaa=BeginThread(程序1)b=BeginThread(程序2)MessageBoxas
3、ub程序1MessageBoxaendsubsub程序2//这里是我要运行的代码endsub[/code]这样在线程中和线程外弹出的值就是一样的那么我们就能随意停止线程了不管你在哪个线程中暂停都会停止线程这样一来多线程就很容易理解了我们只需要搞清楚 在多线程中运行的多线程 主线程停止子线程是不会停止的多线程中调用子程序会停止就可以了 那么什么三线程 四线程 10线程都是浮云了比如:1.DimEnva2.DimEnvb3.DimEnvc4.a=BeginThread(程序1)5.b=BeginThread(程序2)6.7.sub程序18.StopThreada9.c=Begin
4、Thread(程序3)10.endsub11.12.sub程序213.//这里是我要运行的代码14.endsub15.16.sub程序317.//当线程a停止时我不会停止我还会继续运行18.endsub复制代码这样当线程a停止的时候线程c是不会停止的他还会继续运行1.DimEnva2.DimEnvb3.DimEnvc4.a=BeginThread(程序1)5.b=BeginThread(程序2)1.2.sub程序13.StopThreada4.Call程序35.endsub6.7.sub程序28.//这里是我要运行的代码9.endsub10.11.sub程序312.//当线程a停止的时
5、候我会停止啊13.endsub复制代码我感觉多线程就是这样运行的但我发现定义环境变量DimEnva,b这样定义参数就传递进不去不知道是软件问题还是我理解错误
此文档下载收益归作者所有