我这里是一个Console程序。
主线程中创建附属线程
InstanceThreadHandle := CreateThread(nil, 0, @GetFreeInfoProcess, nil, 0, InstanceThreadID);
myTMainSocketClass := TMainSocketClass.Create(CMDHeader, IsSucess,
ServerIP, ServerPort,Petname);
//循环
while true do
begin
sleep(1000);
end;
附属线程中 while(GetMessage(myMsg, 0, 0, 0)) do
begin
if myMsg.message = WsaNotifyMessage then
begin
case myMsg.lParam of
Byte(DoFreeInstance): //free主socket
//释放主socket类
if myTMainSocketClass <> nil then
begin
FreeAndNil(myTMainSocketClass);
//退出进程。
halt;
// 或者
// exitprocess(0);
end;
我用halt或者exitprocess有时候能退出,但是80%情况都不能退出,只知道怎么回事。
有什么更好的 退出程序的方法吗?
主线程中创建附属线程
InstanceThreadHandle := CreateThread(nil, 0, @GetFreeInfoProcess, nil, 0, InstanceThreadID);
myTMainSocketClass := TMainSocketClass.Create(CMDHeader, IsSucess,
ServerIP, ServerPort,Petname);
//循环
while true do
begin
sleep(1000);
end;
附属线程中 while(GetMessage(myMsg, 0, 0, 0)) do
begin
if myMsg.message = WsaNotifyMessage then
begin
case myMsg.lParam of
Byte(DoFreeInstance): //free主socket
//释放主socket类
if myTMainSocketClass <> nil then
begin
FreeAndNil(myTMainSocketClass);
//退出进程。
halt;
// 或者
// exitprocess(0);
end;
我用halt或者exitprocess有时候能退出,但是80%情况都不能退出,只知道怎么回事。
有什么更好的 退出程序的方法吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货