多執行緒其實非常簡單,DELPHI有多執行緒的類,你新增即可使用,但是我喜歡自己呼叫API,方法如下:定義一個函式或者過程,這個函式就是執行緒要執行的內容,然後呼叫API就可以不斷建立執行緒,每個執行緒都單獨的執行那個函式,執行完畢執行緒就自動關閉,下面是我程式裡面的部分程式碼:{下面這個就是執行緒過程,我的執行緒傳遞一個引數,建立的SOCKET}procedureClientThread(varsock:TSOCKET);stdcall;var……;begin……end;{下面是主程式建立服務,等待連線,連線後呼叫執行緒進行處理的程式碼}repeatiAddrSize:=sizeof(client);sClient:=accept(sListen,@client,@iAddrSize);ifsClient=INVALID_SOCKETthenbeginSocketErrorMsg(sClient,"accept()fail");break;end;writeln("Acceptedclient:",inet_ntoa(client.sin_addr),":",ntohs(client.sin_port),"sock=",sClient);hThread:=CreateThread(nil,$1000,@ClientThread,@sClient,0,dwThreadId);ifhThread=0thenbeginwriteln("CreateThread()fail:",GetLastError);break;end;CloseHandle(hThread);untilfalse;
多執行緒其實非常簡單,DELPHI有多執行緒的類,你新增即可使用,但是我喜歡自己呼叫API,方法如下:定義一個函式或者過程,這個函式就是執行緒要執行的內容,然後呼叫API就可以不斷建立執行緒,每個執行緒都單獨的執行那個函式,執行完畢執行緒就自動關閉,下面是我程式裡面的部分程式碼:{下面這個就是執行緒過程,我的執行緒傳遞一個引數,建立的SOCKET}procedureClientThread(varsock:TSOCKET);stdcall;var……;begin……end;{下面是主程式建立服務,等待連線,連線後呼叫執行緒進行處理的程式碼}repeatiAddrSize:=sizeof(client);sClient:=accept(sListen,@client,@iAddrSize);ifsClient=INVALID_SOCKETthenbeginSocketErrorMsg(sClient,"accept()fail");break;end;writeln("Acceptedclient:",inet_ntoa(client.sin_addr),":",ntohs(client.sin_port),"sock=",sClient);hThread:=CreateThread(nil,$1000,@ClientThread,@sClient,0,dwThreadId);ifhThread=0thenbeginwriteln("CreateThread()fail:",GetLastError);break;end;CloseHandle(hThread);untilfalse;