To je právě velmi blbé řešení, ze dvou vláken se na jednu proměnnou nesahá! Celý problém se řeší buď přes invoke, anebo přes SynchronizationContext. Příklad přes Invoke (metoda musí být ve formuláři):
Delegate Sub SetRichTextBoxDelegate()
Protected Sub SetRichTextBox()
If Me.InvokeRequired Then
'jsme v jiném vlákně
Me.Invoke(new SetRichTextBoxDelegate(SetRichTextBox))
Exit Sub
End If
'nastavit RichTextBox
RichTextBox1.Text = "Zdarec"
End Sub
Píšu z hlavy, snad je to správně.
|