SetTimer(1,500,NULL);
int i=0;
while(i++<5)
{
m_list.AddString("string");
Sleep(600);
UpdateWindow();
}
该程序运行结果是先在ListBox中添加完5个"string"项后(3秒后)才运行时钟!
我想让时钟和添加同步完成,请问有什么好方法!
谢谢大家!

解决方案 »

  1.   

    为什么要Sleep(600);
    只有想清楚了这样做的理由,才能考虑同步
      

  2.   


    int   i=0; 
    while(i++ <5) 

    m_list.AddString( "string "); 
    Sleep(600);
    if(i >= 4)SetTimer(1,500,NULL); 
    UpdateWindow(); 
    }这样不行吗,上面的不会差很多!如果更精确的,你可以使用线程!
    否则上面代码已经是最精确的,记住你目前是一个线程,不可能做到你所说的同步,它总是顺序执行的
      

  3.   

    你已经settimer了,你可以在OnTimer里面做添加。
      

  4.   

    WM_TIMER的优先级很低。Sleep挂起了线程。
    LZ改用600ms的定时器m_list.AddString( "string "); 
    5个之后把定时器改为500ms
      

  5.   

    定义 成员变量m_nI
    开始:
    m_nI=0;
    SetTimer(1,600,NULL);
    WM_TIMER消息处理函数
    if(m_nI<=5 )
    {
    KillTimer(1);
    return;
    }
    m_list.AddString( "string ");
    m_nI++;
      

  6.   


    定义   成员变量m_nI 
    开始: 
    m_nI=0; 
    SetTimer(1,600,NULL); 
    WM_TIMER消息处理函数 OnTimer()
    {
    if(m_nI>5 ) 

    KillTimer(1); 
    return; 

    m_list.AddString(   "string   "); 
    m_nI++;}