Einzelnen Beitrag anzeigen

Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#1

DLL Tparallel.for loop deadock

  Alt 16. Sep 2021, 21:10
Hallo,
ich möchte gerne eine simple tparallel loop laufen lassen

Beispiel:
Delphi-Quellcode:
procedure test;
var testarray:tarray<string>;
iscontained:boolean;
const A='ABC';//some string;
begin
iscontained:=false;
TParallel.For(0, 4, //kleines array nur zum testen,
      Procedure(I: integer)
      Begin
    // Windows.Beep(3000, 20);
         If Testarray[I].Equals(A)
          Then
        begin Isscontained := not iscontained;
         break; //kann ich hier so aussteigen?
        end;

//machwas
        // inc(i);
      End);

In einem demoprojekt (console) läuft der code auch einwandfrei durch. Sobald ich aber das selbe snipplet in eine externe dll auslagere hängt der code ohne ersichtlichen grund (debuggen nicht möglich). GgF IDE Absturz.
Im moment habe ich noch gar keinen worker code in die schleife eingebaut. (sondern NUR die line mit "windows.beep").


PS Der Code ließe sich auch anders gestalten, zb, mit vorheriger aufteilung in fixe listen und dann mehrere threads laufen lassen.
Gerne würde ich mir das sparen, wenn es hier eine einfachere Lösung gäbe.
Merci.

Ich danke für Vorschläge.

Geändert von Sequitar (16. Sep 2021 um 21:26 Uhr)
  Mit Zitat antworten Zitat