AGB  ·  Datenschutz  ·  Impressum  







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

TTimer nicht Thread-safe

Ein Thema von hzzm · begonnen am 6. Feb 2018 · letzter Beitrag vom 6. Feb 2018
Antwort Antwort
jziersch

Registriert seit: 9. Okt 2003
Ort: München
258 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 11:51
Man könnte hier doch einen Timer nutzen um den aktuellen Zustand des Threads in der Statusbar anzuzeigen.

Der Timer wäre damit nicht in dem Thread sondern in der GUI.

Alternativ kann man auch eine message an das Hautpfenster von Thread aus schicken, asynchron mit PostMessage. Diueses kann dann updaten wenn es idle ist.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#2

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 12:03
Laut der Antwort in String data from Thread to Main koennte man doch die Aktion der Status-Anzeige .Queue'en, oder nicht?

Kann man infolge dessen nicht auch den Anstoss eines TTimers aus einem TThread ohne AV-Gefahr .Queue'en?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 12:04
Wenn Threads irgendwas nach außen zu funken haben, dann bekommen sie callbacks, die man entsprechend synchronisieren kann.

Wenns komplexer wird, dann einfach OTL oder so nutzen, da gibt es zig Mechaniken.

Laut der Antwort in String data from Thread to Main koennte man doch die Aktion der Status-Anzeige .Queue'en, oder nicht?
Genau - wobei ich lieber den eigentlichen Wert per callback rausgeben würde, das string zusammentackern kann dann dort gemacht werden.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 6. Feb 2018 um 12:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 12:50
Mit TTimer geht es nunmal nicht im Thread, aber natürlich kann man MSDN-Library durchsuchenSetTimer auch innerhalb eines Threads benutzen.
* man muß nur ein Message-Windows im Thread erstellen und da drin einen Timer aktivieren
* und man muß im Thread natürlich auch auch die Window-Messages verarbeiten, vor allem WM_TIMER
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 13:18
Mit TTimer geht es nunmal nicht im Thread
Mein Problem ist momentan eher, dass ich ausserhalb des Threads einen riesigen Timer-gesteuerten Ablauf je nach Thread-Ergebnis an- oder ausschalten muss.
Den kann/moechte ich gar nicht komplett im Thread unterbringen, da dieser Ablauf noch an zig anderen Stellen im Code regulaer verwendet wird.

Ich muesste den Timer ausserhalb eben nur aus dem Thread anstossen.

Darf ich das mit .Queue?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 13:21
Delphi-Referenz durchsuchenTThread.Synchronize oder Delphi-Referenz durchsuchenTThread.Queue ... wird beides im Hauptthread ausgeführt.

MSDN-Library durchsuchenSendMessage und MSDN-Library durchsuchenPostMessage ebenso (wenn das zugehörige Window im Haupthtread erstellt wurde) und MSDN-Library durchsuchenPostThreadMessage sowieso.
Ein Therapeut entspricht 1024 Gigapeut.
  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 13:59 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