Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Ist es möglich über TParallel eine Procedure zum ausführen zu übergeben?

  Alt 4. Apr 2018, 13:40
Hallo himitsu,

mal sehen ob ich dich richtig verstanden habe. In beiden deiner Beispiele ist die Methode innerhalb des Threads verankert und wird ausgeführt. Daraus entnehme ich, es ist nicht möglich die Methode ReverseString(s) dem Thread zu übergeben. Für mein Projekt bedeutet das, wenn wir bei CreateAnonymousThread bleiben wollen, ich müsste jede Methode die der DataSnap Server bereitstellt umkapseln mit dem CreateAnonymousThread?

Also etwa so:


//Jede DataSnap Methode muss ich also so verpacken. Ich kann die DataSnap Methode einem Thread nicht übergeben!
Delphi-Quellcode:
procedure GetAdress_ViaThread(const AdressID: integer);
begin
  TThread.CreateAnonymousThread(procedure
    begin
      CheckDataSnapConnection;
       
      if FutureDSConneced.value //Thread wird blockiert bis Antwort kommt. FutureDSConneced ist eine globale public Variable vom Typ FutureDSConneced: IFuture<boolean>;
      then GetAdress(AdressID);
    end).Start;
end;
Delphi-Quellcode:
procedure TForm1.CheckDataSnapConnection;
begin
  FutureDSConneced := TTask.Future<boolean>(
    function:boolean
    begin
      result := false;
      
      try
        dm1.DSRestConnection1.TestConnection();
        result := true;
// dm1.DSRestConnection1.Reset;

      except
        on E: Exception do
        begin
          HandleException(E);
        end;

      end;
    end);
end;

Gruß Kostas
  Mit Zitat antworten Zitat