Autor Beitrag
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 17.04.10 20:50 
Hi DF :)!

Ich habe mal wieder eine Frage zu Delphi Prism:

Wenn ich das Feature des parallel loop anwenden will, bekomme ich eine böse Fehlermeldung - die Syntax müsste aber eigentlich in Ordnung sein:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
  var Dirs := System.IO.Directory.GetDirectories(fFileName).ToList;
   [...]
  for parallel i:  Int32 := 0 to Dirs.Count-1 do begin
   [...]


Jetzt wirft er mir folgenden Fehler:

Fehler 5 (PE250) "parallel"-Feature benötigen die Parallel Extensions (System.Threading.dll) und die Linq-Bibliotheken (System.Core.dll)

System.Threading konnte ich noch einbinden, aber System.Core hat mein Delphi Prism nicht. Ich hab probiert auf System.Linq auszuweichen, aber das kümmert den Compiler wenig.

Bekommt ihr eine parallel-Scheife zum Laufen?

_________________
Die Lösung ist nicht siebzehn.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 17.04.10 20:55 
Du verwechselst Namespaces und Assemblies. Es gibt keine System.Linq-Assembly, nur einen gleichnamigen Namespace in der System.Core.dll (3.5).
Was in deinen uses steht, dürfte für das Feature keine Rolle spielen; Hauptsache, du hast die erwähnten Assemblies als Verweise hinzugefügt.

_________________
>λ=
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 17.04.10 21:01 
Hmm, ich hab mal unter den Verweisen nachgeguckt, und dort war System.Core eingebunden, aber System.Threading nicht.

Ich bin dann auf 'Verweis hinzufügen' gegangen, wo sich ein Fenster mit einer Liste öffnete. In dieser Liste stand diesmal System.Threading nicht drin.

Was soll ich machen?

_________________
Die Lösung ist nicht siebzehn.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 17.04.10 21:19 
Auf .NET 4 (und damit VS 2010) upgraden, ist immerhin schon seit ganzen vier Tagen verfügbar :zwinker: .
Wenn du an 3.5 gebunden bist, solltest du eine relativ aktuelle Version des Parallel-Frameworks in Rx finden, offiziell unterstützt wird die allerdings nicht.

_________________
>λ=
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 17.04.10 21:49 
Aber das muss doch auch mit meinen Mitteln funktionieren!

_________________
Die Lösung ist nicht siebzehn.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 17.04.10 22:00 
Du brauchst die System.Threading.dll.

Wo Du die System.Threading.dll herbekommst hat Kha in seinem letzten Posting beschrieben.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 24.04.10 16:48 
Hier bin ich noch mal, musste die ganze Zeit in native Delphi programmieren ;)

Ich hab jetzt beide Assemblies eingebunden, er wills aber trotzdem noch nicht fressen.

Mach ich irgendetwas falsch (Screenshot)?

Ich verwende die Rx-Bibliotheken, die Kha angesprochen hat.
Einloggen, um Attachments anzusehen!
_________________
Die Lösung ist nicht siebzehn.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 24.04.10 16:52 
Kannst Du das Projekt (oder besser noch ein minimales Beispielprojekt) mal anhängen, dass ich das bei mir ausprobiere. Denn eigentlich sollte es so gehen :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 24.04.10 17:23 
Klar =)

Ist jetzt kein Beispielprojekt, sondern mein aktuelles.

Aber ich erstelle grad ein Beispielprojekt.
Einloggen, um Attachments anzusehen!
_________________
Die Lösung ist nicht siebzehn.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 24.04.10 17:38 
Hm. Also bei mir kompiliert das so. :gruebel: Allerdings habe ich auch eine neuere Version von Prism, vielleicht ist in Deiner ein Bug drin, dass der wirklich die System.Threading.dll aus den ParallelExtensions braucht und die neue aus Rx nicht akzeptiert.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 24.04.10 17:39 
Hmm, ich glaub, Latinum bekomme ich nicht :lol: :lol:

Geht auch mit dem Beispielprojekt nicht, leere Form, ein Button, Assemblies eingebunden und einfache parallele Schleife (siehe Screen)
Einloggen, um Attachments anzusehen!
_________________
Die Lösung ist nicht siebzehn.
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Sa 24.04.10 17:40 
Und woher bekomme ich die ParallelExtensions?

_________________
Die Lösung ist nicht siebzehn.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 24.04.10 18:06 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Auf .NET 4 (und damit VS 2010) upgraden
;)

Aber da du nun schon Rx runtergeladen hast, ist das eigentlich nicht weiter tragisch, denn for parallel dürfte sowieso nur hauchdünner Syntax Sugar sein. Benutze einfach direkt
ausblenden Delphi-Prism-Quelltext
1:
2:
3:
4:
Parallel.For(0, Dirs.Count - 1, ->
  begin
    ...
  end);


(oder in diesem Fall wahrscheinlich noch besser Parallel.ForEach)

_________________
>λ=