Problem Zugriff auf ein TextBox-Steuerelement aus einer anderen Klasse/thread VB.NET

ich versuche, um Zugriff auf ein richtextbox-Steuerelement aus einer anderen Klasse und der thread wird dann die Benutzeroberfläche und ich kann nicht scheinen, um es funktioniert. Ich habe momentan den sub das ist Umgang mit der Arbeit innerhalb einer public-Klasse und Ihre ein sharedsub, ich gehe auf den Aufruf von mehreren verschiedenen Klassen und threads, aber wieder, ich kann nicht scheinen, um es arbeiten. der code sieht so aus.

Public Class SharedSubs

Public Shared Sub console(ByVal message As String)
    Dim c As New Form1
    If c.consoleBox.Text.Length > 0 Then
        If c.consoleBox.Text.Substring(c.consoleBox.Text.Length - 3, 3) = "..." Then
            c.consoleBox.AppendText(message)
        ElseIf c.consoleBox.Text.Substring(c.consoleBox.Text.Length - 1, 1) = "." Then
            c.consoleBox.AppendText(ControlChars.NewLine & timeStamp() & message)
        End If
    Else
        c.consoleBox.AppendText(timeStamp() & message)
    End If
End Sub

ich würde fordern sub mit SharedSubs.Console("stringstring") wenn diese aufgerufen wird von dem ui-thread funktioniert es aber, wenn die genannte von anyother thread oder Klasse Ihre macht nix, ich habe bestätigt, es werde durch diesen code, aber nicht seine Darstellung, etwas in die textbox und nicht durch eine Ausnahme aufgrund Delegierten, was ich dachte, es würde.

Mache ich das komplett falsch? etwas Hilfe wäre Super, danke.

mögliche Duplikate von Update-UI-Formular aus worker-thread
Du tust multi-threading falsch. Sie sollen nicht auf die Aktualisierung der Benutzeroberfläche in einem anderen thread. Wenn Sie unbedingt haben, um dies zu tun, müssen Sie die Invoke - Methode der Control Klasse. Überprüfen Sie die Dokumentation für details. Es gibt viele andere, ähnliche Fragen hier auf Stack Overflow über multi-threading Probleme. Eine Suche, um zu finden einige Beispiel-code.

InformationsquelleAutor tye | 2011-04-16

Schreibe einen Kommentar