AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Multithreading Problem

Ein Thema von TurboMagic · begonnen am 30. Mär 2024 · letzter Beitrag vom 1. Apr 2024
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.824 Beiträge
 
Delphi 12 Athens
 
#1

AW: Multithreading Problem

  Alt 30. Mär 2024, 08:06
eigentlich will ich was ganz einfaches machen
Das passt aber irgendwie nicht zum Thema Multithreading

Als ergänzende Lektüre empfehle ich dir meinen Artikel Async Tasks in VCL Projects
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.824 Beiträge
 
Delphi 12 Athens
 
#2

AW: Multithreading Problem

  Alt 30. Mär 2024, 08:36
Habe nur kurz in deinen Code geschaut, aber der scheint hier zu hängen:

Task.Wait; Das willst du doch gar nicht !?
In der Tat - das ist die Ursache für den Blocker.

Allerdings crasht das Programm beim Beenden, wenn man den Progress-Dialog abbricht. Da versucht dann ein OnProgress aus der Queue auf die nicht mehr existierende Progressbar zu schreiben. Genau solche Probleme werden auch in meinem Artikel behandelt.

Eine gute Empfehlung für eine tiefergreifende Lektüre ist übrigens das Buch Delphi Event-based and Asynchronous Programming von Dalija Prasnikar, was auch in dem Artikel verlinkt wird.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.099 Beiträge
 
Delphi 12 Athens
 
#3

AW: Multithreading Problem

  Alt 1. Apr 2024, 10:43
Hallo,

danke für die Infos, ja, das Wait war das Problem. Das mit dem Cancel is tmir durchaus bewußt,
in dem Programmteil wird's den Cancel Button aber nicht geben.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
752 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Multithreading Problem

  Alt 1. Apr 2024, 13:24
Cancel Funktionen die Hintergrundprozesse abbrechen können sind aber durchaus sinnvoll.
Nur muss man sich überlegen wie man das umsetzt. Der Task sollte ein Signal erhalten und ein weiteres Signal liefern wenn er fertig ist mit abbrechen.
Anschließend geht ein Programm dann auch zu ohne das es mit Nullpointern um sich wirft.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  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 07:31 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