AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit TImage

Ein Thema von calibra301 · begonnen am 29. Jun 2016 · letzter Beitrag vom 29. Jun 2016
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Problem mit TImage

  Alt 29. Jun 2016, 13:30
Warum willst du die Auswertung synchronisiert vornehmen?

Die Ausgabe an die Controls muss synchronisiert erfolgen, die Auswertung, etc. eher nicht (das ist da wurscht) bzw. eher hinderlich, weil jetzt jeder Empfangsthread den MainThread sehr lange blockiert und dann stehen sich alle auf den Füßen rum.

Stell dir vor du bist der Chef und deine Mitarbeiter bearbeiten emails. Es darf immer nur einer mit dir sprechen.

Jetzt öffnet jeder Mitarbeiter eine email und sucht das Gespräch mit dir (wartet höflich bis er an der Reihe ist), um dir die ganze email vorzulesen ... und dir ganz zum Schluss mitteilt, ob die nun für dich relevant ist oder nicht.

Wäre es nicht günstiger von der Zeit und für deine Ohren, wenn jeder Mitarbeiter die email erst einmal still und heimlich vor sich hin liest und dir nur eine kurze Rückmeldung gibt (wenn es wichtig ist)?

Du versuchst gerade die ungünstige Variante
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
97 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Problem mit TImage

  Alt 29. Jun 2016, 17:33
Hi Rufo,

Denke das Problem ist das ich die Vorgehensweise / dem Sinn der Syncronisierung nicht verstanden hab.
Bin nicht so der Crack der das schon jahrelang macht.
Bei Themen wie Cortex M0/M7 könnte ich eher helfen. Da unter einem RTOS Threadprioritäten zu verteilen
oder mit dem NVIC zu arbeiten finde ich wesentlich logischer.

Bisher war mein Gedanke das wenn ich "Threaded" aktiviere der Empfang mehr oder weniger
unabhängig vom Rest läuft und ich trotz UDP nix verpasse.
Nun kopiere ich mir den Empfangspuffer in einen lokalen und murkse dann weiter.

Gruss
Calli
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Problem mit TImage

  Alt 29. Jun 2016, 18:16
Das passiert ja auch alles threaded, aber wenn du dieses schöne Nebeneinander wieder durch eine Synchronisierung in ein Hintereinander presst, dann hat es sich eben mit dem Nebeneinander erledigt.

Hier ein kleines Minimal-Beispiel:
Delphi-Quellcode:
procedure WillBeCalledFromAThread( foo: TFoo );
var
  i:Integer;
begin

  // ** Im Thread

  // Ganz was Aufwändiges berechnen
  Sleep( 5000 );
  // unser Ergebnis
  i := 1;

  // Das Ergebnis in der Form anzeigen, das dürfen wir aber nur synchronisiert
  TThread.Synchronize( nil,
    procedure
    begin

      // ** Im MainThread

      // Berechnung hier?
      // Sleep( 5000 ); // <- würde das Programm für den Benutzer für 5 Sekunden blockieren
      // also doof, lieber vorher berechnen, da stört es nicht

      MyForm.ListBox.Items.Add( IntToStr( i ) );
    end);

  // ** Im Thread

  // nochwas machen?
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (29. Jun 2016 um 18:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz