Anfang dieser Woche konnte ich einen Delphi UDPClient zum Laufen bringen (mit Hilfe). Jetzt muss ich die Client-Prozedur in einer separaten Einheit und in einem eigenen Thread ausführen. Gibt es ein einfaches Beispiel oder zumindest Pseudo-Code, den jemand teilen kann? Ich sollte vermeiden, TForm im Thread zu verwenden, da ich die zurückgegebenen Daten aus dem Thread abrufen und in TMemo-Feld anzeigen werde. Ich habe ein spezielles Problem mit der vollständigen Definition meines Typs IdUPDClient.UDPClient im separaten Thread Delphi
0
A
Antwort
1
Sie können eine TTask verwenden, um Code in einem getrennten Thread auszuführen, fügen Sie zu verwendet System.Threading.
TTask.run(procedure
var UDPClient : TIdUDPClient;
begin
UDPClient := TIdUDPClient.Create(self);
UDPClient.Host := 'put your host';
UDPClient.Port := 0;//PUT YOUR PORT
UDPClient.ReceiveTimeout := 5000;
UDPClient.BufferSize := 8192;
UDPClient.Active := True;
while True do //put your condition here
begin
//some code
//When you need to update the screen you should syncronize
TThread.Synchronize(TThread.CurrentThread, procedure
begin
form1.Memo1.Text := 'update';
end);
end;
UDPClient.DisposeOf;
end);
Verwandte Themen
- 1. SensorEventListener im separaten Thread
- 2. Delphi: TWebBrowser im Hintergrund-Thread
- 3. Run-Member-Funktion im separaten Thread
- 4. Zugriff auf vcl-Komponente im Thread! Delphi
- 5. Delphi XE10, ist es möglich, einen Thread im Thread
- 6. Einfaches Thread-Beispiel Delphi
- 7. Thread-Safe in Delphi
- 8. Wie kann ich sicherstellen, dass der Rückruf von UDPClient Receive die Nachricht in einem separaten Thread verarbeitet?
- 9. BeginReceive in einem separaten Thread
- 10. In Delphi, ist TDataSet Thread sicher?
- 11. Delphi - Ist TClientDataset Thread sicher?
- 12. UdpClient - begrenzte Puffergröße?
- 13. Findet NSURLSession in einem separaten Thread statt?
- 14. UDPClient in C#
- 15. Benötigt UdpClient einen StreamReader?
- 16. ServerSocket in einem separaten Thread erstellen?
- 17. Junit Ausnahmen in separaten Thread mit Coverage
- 18. Hinzufügen Kind Fragmente in einem separaten Thread
- 19. Wie ein separaten Thread von einem sockets.io starten Thread ausgelöst
- 20. OutOfMemoryError in einem separaten Java-Thread
- 21. Platzieren eines NSTimer in einem separaten Thread
- 22. Starten einer Flaschenanwendung in einem separaten Thread
- 23. UWP GetAsyncKeyState() aus einem separaten Thread
- 24. Dateikopiervorgang funktioniert nicht in einem separaten Thread?
- 25. Python ruft Multiprocessing von separaten Thread
- 26. iphone ios läuft in separaten Thread
- 27. Warten auf Benutzereingabe in separaten Thread
- 28. Starten von Klassenoperationen in einem separaten Thread
- 29. WritableBitmap funktioniert nicht auf separaten Thread?
- 30. Ist Async - Warten Sie einen separaten Thread?
danke. Wenn ich möchte, dass der zurückgegebene Wert in einem TMemo angezeigt wird, kann ich auf Task.run zugreifen. Ich weiß technisch, dass Prozeduren keine Werte zurückgeben, aber ich kann trotzdem die Ausgabe erfassen. Ich weiß in C oder auch Perl kann ich. –
Aktualisieren Sie einfach das, was Sie innerhalb 'TThread.Synchronize' benötigen, Sie können ein Memo in einem Formular 'form1.memo.text: =' update' 'aktualisieren oder eine Prozedur auf einem Datenmodul' datamodule1.update() ', etc. Aufrufen ... – Kohull