我用TTcpServer控制元件自已寫的一個TcpServer服務程式,在OnAccept事件中這樣實作多執行緒,不知道可行不,經過我測驗,多個客戶連接上傳檔案,出了超時現像,用多執行緒不是不應該出現這類問題,請大神幫我看一下,TTcpServer控制元件做多執行緒服務中,能否在OnAccept事件中像我這樣寫代碼???我不懂這個控制元件,我想我是有點混亂的,請大神多指點一下,謝謝!!!
procedure TMYTcpServer.PD_OnNewAccept(Sender:TObject;vClientSocket: TCustomIpClient);
var
mTcpSeverThr:TSeverReceiveThread;
begin
mTcpSeverThr := TSeverReceiveThread.Create(vClientSocket);//創建接收執行緒,并掛起
mTcpSeverThr.RunMsg := PD_ThrRunMsg; //設定執行緒中運行進度資訊回傳到主視窗的一個方法 (執行緒中用Synchronize()呼叫)
mTcpSeverThr.ToMsg := OnMessage; //執行緒普通資訊回傳到主視窗的一個方法(執行緒中用Synchronize()呼叫)
mTcpSeverThr.Start; //起動執行緒
while vClientSocket.Connect do //判斷當前客戶端Socket是連接,
begin
Forms.Application.ProcessMessages;
if Not Assigned(mTcpSeverThr) then Exit;
end;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/54923.html
