Threadsicherer Zugriff auf StringGrid
-
Hallo zusammen,
ich habe eine kurze Frage:
Ich beschreibe ein StringGrid aus einem Thread. Um Daten in einem anderen StringGrid anzuzeigen will ich bei OnClick auf 1. Grid über StringGrid->Row die anzuzeigenden Daten auswählen. Diese werden dann durch einem neuen Thread angezeigt.
Mus der Zugriff auf ...->Row auch Threadsicher gemacht werden, auch wenn darauf nur aus einem Thread zugegriffen wird?
Muss also das komplette StringGrid abgesichert werden?Grüße
Chris
-
hallo Chris,
so wie ich das verstanden habe, musst du, wenn du aus verschiedenen Threads auf eine Variable aus der Hauptanwendung zugreifst, dieses über Synchronize() tun, sodas die Threads immer mit ihrem Zugriff warten, bis eventuelle andere Zugriffe abgeschlossen sind. Ich bin da aber auch kein Experte.
mfg Stephan
-
Danke Stephan für Deine Antwort.
Ich muss zugeben, dass ich mal zu anfang versucht hatte, die Grids über Synchronize() zu aktualisieren. Das hatte aber nicht funktioniert, deswegen habe ich dei Grids beim Bearbeiten über einen Mutex vor anderen Zugriffen gesperrt.
Ich bin mir natürlich bewusst, dass diese Lösung nicht sehr elegant ist, hat aber bisher gut funktioniert.Da werde ich mich wohl nochmals mit der Synchronize-Methode auseinandersetzen müssen...
Grüße
-
Ob Du nun einen Mutex, Synchronize oder eine CriticalSection nimmst ist ziemlich egal. Die Hauptsache ist, dass Du den Hauptthread daran hinderst, auf das StringGrid zuzugreifen, während Du es aus dem Thread heraus aktualisierst.
Sollte also problemlos funktionieren.