Межпоточная операция недействительна

Я пытаюсь получить доступ к форматированному текстовому полю в другой форме. Я использую для этого следующий код:

Private Delegate Sub StringDelegateChat(text As String, window As ChatWindow)
    Private Sub AppendTextChatWindows(text As String, window As ChatWindow)
        Try              
            If window.RichTextBox1.InvokeRequired Then
                window.Invoke(New StringDelegateChat(AddressOf AppendTextChatWindows), text, window)
            Else
                window.RichTextBox1.AppendText(text)
                window.RichTextBox1.SelectionStart = window.RichTextBox1.Text.Length
                window.RichTextBox1.ScrollToCaret()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End Sub

но я получаю ошибку межпотоковая операция недействительна, я думаю, что это происходит потому, что он пропускает window.invoke часть оператора if. Я также попытался заменить If window.RichTextBox1.InvokeRequired Then на If InvokeRequired Then , но он попадает в цикл продолжения и возникает ошибка переполнения стека.

Спасибо Houlahan

5
задан Houlahan 12 October 2011 в 16:55
поделиться