多线程在按键精灵中的应用.docxVIP

  • 10
  • 0
  • 约1.2千字
  • 约 4页
  • 2017-07-09 发布于河南
  • 举报
多线程在按键精灵中的应用

个人认为多线程没什么复杂的? ?重要的在于参数传递一个线程返回一个线程ID如果你要想在子程序里面暂停他就得把线程的ID传递进去才能暂停因为普通变量的参数传递不到线程中所以很多人就觉得在线程中无法暂停线程比如a=BeginThread(程序1)b=BeginThread(程序2)sub 程序1end subsub 程序2end sub 复制代码这是2个线程在线程中我们是无法暂停线程的只能在线程外暂停因为他的线程ID是无法传递进线程中得所以没法暂停找不到目标这就是很多人不明白为什么线程中无法暂停线程的原因如果还不理解那么大家看看另一个??a=BeginThread(程序1)b=BeginThread(程序2)MessageBox asub 程序1MessageBox aend subsub 程序2end sub[/code]这个线程多线程中会弹出2个窗口弹出的是第一个线程返回的值弹出的2个值我们会发现不一样??因为多线程中参数没有传递进去所以弹出的是空白而另一个在线程外所以就值了我们就会发现每个线程运行都会返回一个线程ID因为线程返回的值存入的变量是普通变量无法传递进去所以在线程中我们暂停或者停止都是无效的但是我们把返回值定义成环境变量就能传递进去了DimEnv aa=BeginThread(程序1)b=BeginThread(程序2)MessageBox asub 程序1MessageBox aend subsub 程序2//这里是我要运行的代码end sub[/code]这样在线程中和线程外弹出的值就是一样的那么我们就能随意停止线程了不管你在哪个线程中暂停都会停止线程这样一来多线程就很容易理解了我们只需要搞清楚??在多线程中运行的多线程??主线程停止子线程是不会停止的多线程中调用子程序会停止就可以了??那么什么三线程??四线程??10线程都是浮云了比如:DimEnv aDimEnv bDimEnv ca=BeginThread(程序1)b=BeginThread(程序2)sub 程序1StopThread ac=BeginThread(程序3)end subsub 程序2//这里是我要运行的代码end subsub 程序3//当线程a停止时我不会停止我还会继续运行end sub 复制代码这样当线程a 停止的时候线程c是不会停止的他还会继续运行DimEnv aDimEnv bDimEnv ca=BeginThread(程序1)b=BeginThread(程序2)sub 程序1StopThread aCall 程序3end subsub 程序2//这里是我要运行的代码end subsub 程序3//当线程a停止的时候我会停止啊end sub 复制代码我感觉多线程就是这样运行的但我发现定义环境变量DimEnv a,b这样定义参数就传递进不去不知道是软件问题还是我理解错误

文档评论(0)

1亿VIP精品文档

相关文档