AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy - TIdSync

Ein Thema von chkaufmann · begonnen am 10. Okt 2018 · letzter Beitrag vom 10. Okt 2018
Antwort Antwort
chkaufmann

Registriert seit: 23. Aug 2018
6 Beiträge
 
#1

Indy - TIdSync

  Alt 10. Okt 2018, 13:11
Hallo,

mit "Tokyo" erhalte ich die Meldung, dass TIdSync.SynchronizeMethod deprecated sei und man TThread.Synchronize verwenden soll. Wie mache ich das korrekt?

Aus
Code:
TIdSync.SynchronizeMethod(ExecuteSynchronized);
wird
Code:
TThread.Synchronize(nil, ExecuteSynchronized);
ist das ok oder muss ich AThread auch setzen?

Christian
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Indy - TIdSync

  Alt 10. Okt 2018, 13:15
Ist ok, wenn du in den VCL-Mainthread synchronisieren willst.
  Mit Zitat antworten Zitat
chkaufmann

Registriert seit: 23. Aug 2018
6 Beiträge
 
#3

AW: Indy - TIdSync

  Alt 10. Okt 2018, 13:17
Ist ok, wenn du in den VCL-Mainthread synchronisieren willst.
Das ist nicht so. Ich bin im Kontext eines OnCommandGet Event eines TIdHTTPServer.

Christian
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Indy - TIdSync

  Alt 10. Okt 2018, 13:52
Ist ok, wenn du in den VCL-Mainthread synchronisieren willst.
Das ist nicht so. Ich bin im Kontext eines OnCommandGet Event eines TIdHTTPServer.

Christian
Sowas in der Art nahm ich an, aber in welchen Thread möchtest du denn synchronisieren? Wohin?
Wenn es darum geht, irgendetwas in der Oberfläche zu machen (Daten anzeigen etc.) dann ist nil ok, weil dann in den Haupthread synchronisierst.
Sprich ExecuteSynchronized wird im Kontext des Haupthreads ausgeführt.
  Mit Zitat antworten Zitat
chkaufmann

Registriert seit: 23. Aug 2018
6 Beiträge
 
#5

AW: Indy - TIdSync

  Alt 10. Okt 2018, 13:53
Jetzt habe ich falsch überlegt. Ich will ja gerade in den MainThread synchronisieren. Somit ist nil ok.

Besten Dank.

Christian
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#6

AW: Indy - TIdSync

  Alt 10. Okt 2018, 14:41
Ich glaub der erste Parameter ist eh der Sender und nicht der Empfänger.
(falls dir der Absender bekannt ist, wenn nicht, dann egal)

TThread-Synchronize syncronisert immer nur in den Hauptthread.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Indy - TIdSync

  Alt 10. Okt 2018, 18:38
Ich glaub der erste Parameter ist eh der Sender und nicht der Empfänger.
Das ist korrekt. TThread.Synchronize ist einfach nur eine Klassenmethode der gleichnamigen Instanzmethode.
Delphi-Quellcode:
class procedure TThread.Synchronize(AThread: TThread; AMethod: TThreadMethod);
var
  SyncRec: TSynchronizeRecord;
begin
  if AThread <> nil then
    AThread.Synchronize(AMethod)
  else
  // unbekannter Absender
end;
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz