Argh, ich glaube ich sehe den Fehler schon. Du greifst ohne Synchronisierung aus dem Thread heraus auf Variablen (bzw. genauer die Property deines Formulars) außerhalb zu. Das kann ja nicht gut gehen...
Ich hoffe der Fehler kam jetzt bei der Demo rein? Jedenfalls kann ich mir dann jetzt ohne den Fehler das eigentliche Problem anschauen.
// EDIT:
Also bis jetzt sehe ich da keine Probleme. Ich glaube in deinem echten Projekt ist das genau dieses Problem.
Delphi-Quellcode:
if bOszilloskop then
Synchronize(Test);
//Form1.Eingangssignal[0] := random(256);
[...]
end;
procedure TControlCardControlThread.Test;
begin
Form1.Eingangssignal[0] := random(256);
end;
So läuft bei mir jetzt schon minutenlang alles normal.