Q
QSmile
Unregistered / Unconfirmed
GUEST, unregistred user!
在线程中用 Application.ProcessMessage 的问题
是这样的。
我在一个线程中,
要调用一个函数,这个函数是一个连接函数,调用后马上返回,但这时,连接可能还没有完成。(当然也可以永远完成不了),我在控件的 OnConnected 事件中设 bConnected := true;
简要代码如下:
// 线程体
dwTime:= GetTickCount;
net.connect; // 连接
while GetTickCount - dwTime < dwTimeOut do
begin
Application.ProcessMessage;
if bConnected then
break;
end;
// to some thing....
////
net.Connected 中
bConnected := true;
这种方法在窗体下时是没有问题的,但我用到了线程中,这种方法是否可行?
因为 ProcessMessage 是检查窗体事件,而用在 thread 中。它能不能处理 thread 中的其它事件?
是这样的。
我在一个线程中,
要调用一个函数,这个函数是一个连接函数,调用后马上返回,但这时,连接可能还没有完成。(当然也可以永远完成不了),我在控件的 OnConnected 事件中设 bConnected := true;
简要代码如下:
// 线程体
dwTime:= GetTickCount;
net.connect; // 连接
while GetTickCount - dwTime < dwTimeOut do
begin
Application.ProcessMessage;
if bConnected then
break;
end;
// to some thing....
////
net.Connected 中
bConnected := true;
这种方法在窗体下时是没有问题的,但我用到了线程中,这种方法是否可行?
因为 ProcessMessage 是检查窗体事件,而用在 thread 中。它能不能处理 thread 中的其它事件?