问题:1.在后台线程可不可以毫无顾忌的使用MessageDlg,及ShowMessage之类的提示框?2.在后台线程中操作到主form中的控件时,使用PosMessage..
如:
gloLockPostMsg.Enter;
glosWParam := ClientMacIP;
PostMessage(Handle,WM_UPDATEUSERLOGIN,Integer(PChar(glosWParam)),Integer(PChar('')));
gloLockPostMsg.Leave;
接收WM_UPDATEUSERLOGIN消息的过程是否也在这个锁内执行..?也就是也是它们都是一个执行单位...? 3.Indy中的IdTCPServer中的这三个过程
procedure TfrmMain.IdTCPServerConnect(AThread: TIdPeerThread);
procedure TfrmMain.IdTCPServerDisconnect(AThread: TIdPeerThread);
procedure TfrmMain.IdTCPServerExecute(AThread: TIdPeerThread);
是不是都是多线程?也是就在这里头操作主form中的控件是否都得用同步?谢谢....
如:
gloLockPostMsg.Enter;
glosWParam := ClientMacIP;
PostMessage(Handle,WM_UPDATEUSERLOGIN,Integer(PChar(glosWParam)),Integer(PChar('')));
gloLockPostMsg.Leave;
接收WM_UPDATEUSERLOGIN消息的过程是否也在这个锁内执行..?也就是也是它们都是一个执行单位...? 3.Indy中的IdTCPServer中的这三个过程
procedure TfrmMain.IdTCPServerConnect(AThread: TIdPeerThread);
procedure TfrmMain.IdTCPServerDisconnect(AThread: TIdPeerThread);
procedure TfrmMain.IdTCPServerExecute(AThread: TIdPeerThread);
是不是都是多线程?也是就在这里头操作主form中的控件是否都得用同步?谢谢....
2 不一定是??到底什么时候是,什么时候不是?
3.是阻塞方式...哎..有时会出现未响应....:(能否说清楚点呀?谢谢.....
2 大部分情况下不是。唯一特殊的情况就是在你离开临界区之前,你的消息就已经被处理了,那么就算是。:)