| 
			 
					阅读:1378回复: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而已。  | 
	|