| 
					阅读:1368回复:13
				 arthurtu:我已给你分了,我还有问题想向你请教!
					谢谢arthurtu的回答,虽然没有太大帮助,但还是要给分,我现在想用多线程来解决此问题,但遇到一个新问题,就是:
 如何终止这个新开线程? 我在新线程中采用如下代码: while(!bTerminate) { ....... } 然后在主线程中希望通过变化bTerminate的值来使其退出循环,可就是不能退出,通过softice观察,发现bTerminate值似乎改变不了, 是何原因,该如何解决呢? | |
| 沙发#发布于:2002-08-01 20:54 
					对于多线程的东西,最好不要按你这种方式写,可以用临界区或者事件什么的。				 | |
| 板凳#发布于:2002-08-02 09:11 
					多谢,由于在DS中不知如何建立事件,还望提供一些帮助!				 | |
| 地板#发布于:2002-08-02 09:15 谢谢arthurtu的回答,虽然没有太大帮助,但还是要给分,我现在想用多线程来解决此问题,但遇到一个新问题,就是: 这个我也遇到过,本来是想check到一个event然后将一个bool值置位,推出线程的,但是就是不行,最后只好使用teminatethread将线程kill了,你可以试试。 | |
| 
 | 
| 地下室#发布于:2002-08-02 09:20 
					谢谢回答,我在主线程中曾尝试通过m_thread.Terminate()语句来实现,可每运行到此处时,系统总是挂起,不知zydcat是如何实现的?				 | |
| 5楼#发布于:2002-08-02 09:33 谢谢回答,我在主线程中曾尝试通过m_thread.Terminate()语句来实现,可每运行到此处时,系统总是挂起,不知zydcat是如何实现的? 用这个 BOOL TerminateThread( HANDLE hThread, // handle to thread DWORD dwExitCode // exit code ); | |
| 
 | 
| 6楼#发布于:2002-08-02 09:43 
					faint!我回答的什么呀?好没有面子的说。
 只在app层的话,用临界区比较好点。 | |
| 7楼#发布于:2002-08-02 10:37 
					应该是在驱动层,还想请问zydcat,TerminateThread在DS中该如何实现呢,我使用的是DS1.2.				 | |
| 8楼#发布于:2002-08-02 10:39 
					你要在驱动中作多线程,不是吧。				 | |
| 
 | 
| 9楼#发布于:2002-08-02 14:00 
					驱动中不是可以另开一个系统线程的吗?
 | |
| 10楼#发布于:2002-08-02 14:03 
					用PsCreateSystemThread
 PsTerminateSystemThread不可以吗? | |
| 11楼#发布于:2002-08-02 14:07 
					你的bTerminate是global的?!
 考虑放到device extension去,把device extenstion当参数给你的thread。 在thread,比如: while(!pDevExt->bTerminate) { .... } | |
| 12楼#发布于:2002-08-02 18:38 
					谢谢arthurtu
 你所说的是在DDK下的实现方法,可我现在用的是DS,不知DS下是否一样,如有什么高见,还望不吝赐教。 | |
| 13楼#发布于:2002-08-02 20:11 
					不会driverwork的东东。
 其实他也只是封装了DDK而已。 | |
 
							
 
				 
				 
				