[gelöst] TThread - prinzipielles Vorgehen
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: TThread - prinzipielles Vorgehen
Habe eben mal das Nil durch einen entsprechenden Pointer ersetzt. Das Problem tritt trotzdem auf. Möglicherweise handelt es sich um einen Bug in der MTProcs?
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: TThread - prinzipielles Vorgehen
Ich habe Matthias Gärtner schon mal angeschrieben und mein einfaches Stringbeispiel angehängt. Bisher noch keine Antwort. Es wäre schön, wenn zu den Addons ein RSS-Feed à la Sourceforge gehören könnte oder eine automatische SVN Prüfung erfolgen würde. Ich melde mich jedenfalls wieder, wenn ich mehr weiß (oder das doch nach Deinem Beispiel mit Waitfor() programmiereEuklid hat geschrieben:Bug in der MTProcs

-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: [gelöst] TThread - prinzipielles Vorgehen
Jetzt hatte ich mal etwas Muse, mich mit dem Multithreading zu beschäftigen. Die MTProcs kann man ausgezeichnet nutzen, wenn entweder die globale Variable bei jedem Aufruf "aufgefrischt" wird (ProcThreadPool.Free; ProcThreadPool:=ProcThreadPool.Create) oder man einfach eine eigene lokale Variable benutzt. Dann klappt es auch mit wiederholten DoParallel()'s. Neben dieser gut beschriebenen Funktion gibt es noch EnterPoolCriticalSection und LeavePoolCriticalSection, innerhalb derer man leicht mit dem Rest des Programms Daten austauschen kann. Alles sehr angenehm zu bedienen. Mein Programm braucht jetzt ein Drittel der Zeit (es laufen 3 Prozesse parallel bzw. 7 mit Hyperthreading, was nicht mehr viel bringt).
Edit: http://bugs.freepascal.org/view.php?id=14319" onclick="window.open(this.href);return false;
Edit: http://bugs.freepascal.org/view.php?id=14319" onclick="window.open(this.href);return false;