下面这样写是创建两个线程:HANDLE   hThread1=CreateThread(NULL,0,ThreadProc1,NULL,0,NULL); 
 HANDLE   hThread2=CreateThread(NULL,0,ThreadProc2,NULL,0,NULL); 
 CloseHandle(hThread1); 
 CloseHandle(hThread2);
 现在我将其改成以下内容并调用两遍:HANDLE hThread1=CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);  
CloseHandle(hThread1);这也是创建两个线程吗?我的线程里执行的内容是一个定时器,我以在多个线程中执行那一个定时器里的内容吗?因为我的程序是单任务的下载程序,我想用多个线程跑它。我现在有一个定时器和一个线程的程序,想改进。

解决方案 »

  1.   

    用cevent和waitforsingleobject,事件同步就行
      

  2.   

    这也是创建两个线程吗?
    是的,创建了2个线程,但创建后,就CloseHandle,以后这个线程就不能wait了我的线程里执行的内容是一个定时器,我以在多个线程中执行那一个定时器里的内容吗?因为我的程序是单任务的下载程序,我想用多个线程跑它。我现在有一个定时器和一个线程的程序,想改进。
    弄一个下载任务列表,就是把下载分成很多份,然后线程从列表里获取任务
      

  3.   

    使用 CEvent 类
      CEvent
    类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。用 SetEvent()和WaitForSingleObject()函数