Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
12. Dez 2014
Mein Phantasiebeispiel wäre dass der Pollingthread eine zu starke Temperaturschwankung innerhalb eines Zeitfensters registriert und das dann meldet.
Der andere Thread schaut "Gab es Schwankungen?". Wenn ja, holt er sich die zuletzt aufgetretenen und für ihn neuen Schwankungen. Er vergleicht das mit anderen Dingen, tut andere Dinge, kommuniziert mit anderen Geräten. Ich kann das nicht auf...
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
12. Dez 2014
Grade das macht ja nur Sinn wenn der wartende Thread ("Thread 2") sonst keine Aufgabe hat.
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
12. Dez 2014
Vielen Dank für die Hilfe bislang aber nein ;-)
Ganz abseits von konkreten Beispielen:
Ich möchte das, was man mit dem TThread.Synchronize(..) und TThread.Queue(..) dem Hauptthread zuwerfen kann, einem x-beliebigen Thread zuwerfen können.
Ein konkretes Beispiel:
Ich habe einen Polling-Thread der einen Zustandwechsel feststellt. Diesen Zustandswechsel von X auf Y soll ein anderer...
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
12. Dez 2014
Aber grade das will ich ja nicht: Irgendein Thread.
Ich habe einen TThread, der hat irgendwann Daten berechnet/gesammelt. Mit denen soll in einem anderen Thread gearbeitet werden. Ich habe auf die Schnelle mal das hier hingeklatscht:
TWorkThread = class abstract(TThread)
private var
workQueue: TThreadedQueue<TProc>;
protected
procedure Execute(); override;
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
12. Dez 2014
Hat sich mit dem neuen System.Threading unter XE7 etwas geändert oder geht es immer noch nicht?
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
31. Jul 2014
Schade.
Überrascht mich, aber bei der geballten Kompetenz glaube ich das :wink:
Forum: Object-Pascal / Delphi-Language
by Der schöne Günther,
31. Jul 2014
Ich habe bislang oft Sachen in den Hauptthread geschoben. Entweder mittels TThread.Synchronize(nil, meineProzedur); oder TThread.Queue(nil, meineProzedur);. So schön einfach.
Jetzt habe ich aber die Situation, dass ich etwas in einen anderen TThread queuen möchte. Was muss der Thread dafür tun? Er soll, wenn er die Zeit hat, die Sachen in seiner "To Do"-Liste abarbeiten.
Ich hätte jetzt...