![]() |
AW: System.Threading => mehrere Threads gleichzeitig ??
Zitat:
Zumindest bei mir hängt das Testprogramm beim Beenden, wenn noch Tasks abzuarbeiten sind (Infinite timeout). Wenn ich beim
Delphi-Quellcode:
einen Timeout von einigen Sekunden angebe, dann muss in
TTask.WaitForAll
Delphi-Quellcode:
noch ein
TaskHasFinished()
Delphi-Quellcode:
um den Code, weil es sonst beim Zugriff des TMonitors auf den schon freigebenden
if not FShutdown then
Delphi-Quellcode:
knallt.
FSync
Oder wie wäre es besser/richtig? |
AW: System.Threading => mehrere Threads gleichzeitig ??
Richtiger wäre es mit folgender Änderung:
Delphi-Quellcode:
;)
function TMainForm.CreateProc( const AID: string ): TProc;
begin Result := procedure begin Log( AID + ' started' ); try Sleep( 1000 ); finally Log( AID + ' finished' ); end; end; end; procedure TMainForm.Log( const AMsg: string ); begin if csDestroying in ComponentState then Exit; TThread.Synchronize( nil, procedure begin ListBox1.ItemIndex := ListBox1.Items.Add( AMsg ); end ); end; |
AW: System.Threading => mehrere Threads gleichzeitig ??
Hallo,
ich habe das Zippen mittlerweile auf TThread umgestellt. Die TTask-Variante ist ja Unsinn für dieses Vorhaben. Es läuft auch weitgehend problemlos. Nur mit der Fortschrittanzeige bei einzelnen Threads hab ich noch etwas Schwierigkeiten. Es funktioniert aber, und somit könnte es auch ein Problem mit ZipForge sein. Im Lauf des Tages werde ich die aktuelle Version mal posten. Soll es als gezippte Datei sein (pas+dfm)? |
AW: System.Threading => mehrere Threads gleichzeitig ??
Zitat:
|
AW: System.Threading => mehrere Threads gleichzeitig ??
Zitat:
![]() Ich verwende auch nicht alles stumpf was ich so finde, bin aber immer neugierig auf den Lösungsweg und die einzelnen Detail-Lösungen. |
AW: System.Threading => mehrere Threads gleichzeitig ??
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
In Bezug auf den Background-Worker heißt das: Hab noch nicht durchschaut wie das Teil arbeitet, also ignoriere ich es vorerst, weil mir der Lernaufwand in Relation zu den Wünschen (nicht Anforderungen) die ich bzw. meine Kunden haben haben, momentan (noch) nicht gerechtfertigt ist. Als Einzelkämpfer muss ich mir meine Zeit sehr genau einteilen. Darum bitte nicht falsch verstehen. Anbei nun das kleine Projekt. Wer noch Fehler findet, bitte mitteilen. Ansonsten muss man ja für den Fall, dass man ZipForge nicht hat, nur den kleinen Teil des Zippers austauschen, und hat eine kleine Backup-Lösung für die schnelle Sicherung zwischendurch. Bei mir ist es gerade mit ~23 GB an ZIP-Dateien durch gelaufen. Am Anfang läuft es ziemlich flott los, aber wenn der HDD-Cache mal voll ist, wird es natürlich langsamer. |
AW: System.Threading => mehrere Threads gleichzeitig ??
Zitat:
Die schlummern dann alle erstmal in der Thread.Queue und es werden immer so viele Worker gestartet wie der Rechner Kerne und CPU Auslastung hat... Eben nach der Automatik der Library... Bingo... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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 by Thomas Breitkreuz