Hallole,
ja, Threadsicherheit. Ich bin da noch nicht so firm drin und verdreh mir eher das Hirn als dass ich da sicher wäre wie ich das angehen soll.
Ich habe mir eine Klasse gebastelt, die im Prinzip eine List(of String) verwaltet. Es gibt neben anderen eine Methode add, die Strings hinten anhängt und eine Methode read, die den ersten Eintrag zurückgibt und diesen aus der Liste entfernt.
Dann gibt es einen Thread, der die Liste füllt. Alle 500ms gibt es einen neuen Eintrag hinten dran.
Ein zweiter Thread holt alle 1000ms mit read alle Einträge ab und leert somit die Liste wieder.
Normalerweise klappt das auch ohne besondere Vorsichtsmaßnahmen aber in seltenen und unglücklichen Zusammenhängen kommen sich die beiden Threads in die Quere. Das musste ich gestern leider feststellen. Also aufbohren und threadsicher machen. Nur wo setze ich an?
Die Beispiele die man im Netz finden kann, beziehen sich sehr oft auf Steuerelemente (Controls). Die sind ja per se mit den entsprechenden Werkzeugen (invoke) ausgestattet. Und die anderen Beispiele beziehen sich in der Regel auf den Fall, dass zwei Threads jeweils die gleiche Methode aufrufen. Bei mir ist das aber etwas anders, da zwei Threads jeweils andere Methoden (add bzw. read) aufrufen.
Im Moment tu ich mir da schwer und weiß nicht so recht wie recht wie ich es angehen soll. Hatte bisher noch keinen Bedarf. Wenn mir da jemand auf die Sprünge helfen könnte, wäre das super.
Gruß
MQ
ja, Threadsicherheit. Ich bin da noch nicht so firm drin und verdreh mir eher das Hirn als dass ich da sicher wäre wie ich das angehen soll.
Ich habe mir eine Klasse gebastelt, die im Prinzip eine List(of String) verwaltet. Es gibt neben anderen eine Methode add, die Strings hinten anhängt und eine Methode read, die den ersten Eintrag zurückgibt und diesen aus der Liste entfernt.
Dann gibt es einen Thread, der die Liste füllt. Alle 500ms gibt es einen neuen Eintrag hinten dran.
Ein zweiter Thread holt alle 1000ms mit read alle Einträge ab und leert somit die Liste wieder.
Normalerweise klappt das auch ohne besondere Vorsichtsmaßnahmen aber in seltenen und unglücklichen Zusammenhängen kommen sich die beiden Threads in die Quere. Das musste ich gestern leider feststellen. Also aufbohren und threadsicher machen. Nur wo setze ich an?
Die Beispiele die man im Netz finden kann, beziehen sich sehr oft auf Steuerelemente (Controls). Die sind ja per se mit den entsprechenden Werkzeugen (invoke) ausgestattet. Und die anderen Beispiele beziehen sich in der Regel auf den Fall, dass zwei Threads jeweils die gleiche Methode aufrufen. Bei mir ist das aber etwas anders, da zwei Threads jeweils andere Methoden (add bzw. read) aufrufen.
Im Moment tu ich mir da schwer und weiß nicht so recht wie recht wie ich es angehen soll. Hatte bisher noch keinen Bedarf. Wenn mir da jemand auf die Sprünge helfen könnte, wäre das super.
Gruß
MQ