我第一次玩这种名堂,希望各位告诉我如何开发多线程的程序,不用多线程行吗,8个定时器会不会死机,最短的时间间隔10MS,最长的5000,望高手指点

解决方案 »

  1.   

    用 timer 可以让线程变得没有用出,不过你用线程好灵活的多。
    你一般都是 八个八个的用??太吓人了。
      

  2.   

    两种可能都有!关键是任务的执行时间!你为什么不全部采用一个方式哪?都用sttimer或 thread.
      

  3.   

    用线程吧,10ms定时用SetTimer()是不行了,或许只能用多媒体定时器了,那个精确一些。
      

  4.   

    SetTimer() 这个定时的最小时间是18.6ms(100/6 ms) 左右
    要求更高的精度那要用的定时器挺复杂的,我都不懂得怎么弄了
      

  5.   

    10ms可能倒不了这个精度你不如用内核方式的等待时钟
    createwaitabletimer()
      

  6.   

    别用定时器, 我用定时器显示时间,900毫秒刷一次, 碰到系统忙的时候, OnTimer的显示时间模块函数定时器没有得到执行用线程可以自己定义这个线程的优先级,挺不错的
      

  7.   

    多媒体Sleep()呵呵,大家用这个吧。BOOL MySleep(DWORD dwInterval)
    {
    BOOL bNormal = TRUE; 
    LARGE_INTEGER frequence, privious, current, interval; 
     
    if(!QueryPerformanceFrequency( &frequence)) 

    ::MessageBox(NULL, "Your computer hardware doesn't support the high- resolution performance counter", 
    "Not Support", MB_ICONEXCLAMATION | MB_OK); //或其它的提示信息 
    return FALSE; 

     
    interval.QuadPart = frequence.QuadPart * dwInterval / 1000000; 
     
    bNormal = bNormal && QueryPerformanceCounter( &privious ); 
    current = privious; 
     
    while( current.QuadPart - privious.QuadPart < interval.QuadPart ) 
    bNormal = bNormal && QueryPerformanceCounter( &interval ); 
     
    return bNormal; }//使用方法
    OnTimer(...)
    {
        yourproc()
        mysleep(200);}