问一个问题
application.processmessages;
怎么会反而把程序给卡死掉?
是直接进程都死了.
单步跟踪到Application.ProcessMessages;这句,过不了,卡死.
不用Application.ProcessMessages;这句 界面会卡,但是一会儿就好了,进程不会死掉.
我的代码:while not FCapOver do
  begin
    Application.ProcessMessages;
    //----------------------------------------------------------------------
    if GetTickCount- FCapStartTime>= FCapOutTime *1000  then//检测5秒钟
    begin
      FCapIP.StopCap;
      FCapOver:=True;
    end;
//    Sleep(10);
  end;高手看看什么原因

解决方案 »

  1.   

    Application.ProcessMessages;是不会出问题的。看自己代码,其他地方做了什么什么事情。
      

  2.   

    界面卡死应该跟这段代码无关,其他代码中有否发送消息没有返回之类?另外,sleep是必要的,不然可能会造成CPU占用超高的表象。
      

  3.   

    FCapIP.StopCap;很有可能和这个有关系
      

  4.   

    看上去应该是在多线程代码直接调用了Application.ProcessMessages方法。
    但有一点想不通的是LZ说如果不加这行会导致界面卡...莫非这不是多线程代码?或者是FCapIP里面有做了什么吗?如果是多线程代码的话,由于Application是运行在主线程的全局对象实例,你直接在其他线程里面调用会导致应用程序异常(可能直接挂掉)。
    (一般不要在线程代码中去调用Application.ProcessMessages,会乱掉的。)