问一个问题
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;高手看看什么原因
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;高手看看什么原因
但有一点想不通的是LZ说如果不加这行会导致界面卡...莫非这不是多线程代码?或者是FCapIP里面有做了什么吗?如果是多线程代码的话,由于Application是运行在主线程的全局对象实例,你直接在其他线程里面调用会导致应用程序异常(可能直接挂掉)。
(一般不要在线程代码中去调用Application.ProcessMessages,会乱掉的。)