Aus Thread auf Hauptformular (Steuerelemente und Werte) zugreifen (vb. net)
Hallo,
ich schreiben zur Zeit ein kleines .NET-Programm. Um die Performance zu erhöhen habe ich verschiedene Programmteile in Threads ausgelagert.
Mein Problem
Ich kann z.B. aus einem Thread eine Methode des Hauptformulars aufrufen. Diese wird auch ohne Probleme ausgeführt. Sobald ich aber aus dem Thread heraus eine Eigenschaft/Eintrag in einem Steuerelement vornehmen möchte, passiert einfach nichts. Es treten keine Fehler oder sonstige Benachrichtigungen auf.
Auch wenn ich aus dem Hauptformular Werte abrufe bekomme ich beispielsweise bei Items.Count immer 0 zurück.
Zu meinem Programm
Ich habe für jeden Thread ein Objekt einer Klasse erstellt (System.Threading.Thread). Alle Steuerelemente/Methoden die verwendet werden sollen, sind als Public definiert. Nachfolgend mein (vereinfachter) Code...
Thread erzeugen
Thread starten
Hat irgend jemand eine Ahnung, warum dieses Problem auftritt?
Vielen Dank schon mal und Grüße,
flipflip
ich schreiben zur Zeit ein kleines .NET-Programm. Um die Performance zu erhöhen habe ich verschiedene Programmteile in Threads ausgelagert.
Mein Problem
Ich kann z.B. aus einem Thread eine Methode des Hauptformulars aufrufen. Diese wird auch ohne Probleme ausgeführt. Sobald ich aber aus dem Thread heraus eine Eigenschaft/Eintrag in einem Steuerelement vornehmen möchte, passiert einfach nichts. Es treten keine Fehler oder sonstige Benachrichtigungen auf.
Auch wenn ich aus dem Hauptformular Werte abrufe bekomme ich beispielsweise bei Items.Count immer 0 zurück.
Zu meinem Programm
Ich habe für jeden Thread ein Objekt einer Klasse erstellt (System.Threading.Thread). Alle Steuerelemente/Methoden die verwendet werden sollen, sind als Public definiert. Nachfolgend mein (vereinfachter) Code...
Thread erzeugen
Try
Dim objThreadClass As New ThreadClass
Dim Instance As New System.Threading.Thread(AddressOf objThreadClass.StartThread)
objThreadClass.intIndex = intCounter
Instance.Priority = Threading.ThreadPriority.Normal
Instance.Start()
Catch e As Exception
MsgBox("Fehler: " e.ToString)
EndTry
Thread starten
Public Class ThreadClass
Public intIndex As Integer
Public Sub StartThread()
'Der folgende Befehl hat keine Auswirkungen.
formMain.tableResult.Items.Add(intIndex)
End Sub
End Class
Hat irgend jemand eine Ahnung, warum dieses Problem auftritt?
Vielen Dank schon mal und Grüße,
flipflip
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 46058
Url: https://administrator.de/forum/aus-thread-auf-hauptformular-steuerelemente-und-werte-zugreifen-vb-net-46058.html
Ausgedruckt am: 24.01.2025 um 00:01 Uhr