max2k3
Lt. Commander
- Registriert
- Apr. 2003
- Beiträge
- 1.818
Hi, hab eine Frage zu folgender Problemstellung:
Ich habe eine Variable, beispielsweise "status as Boolean" in einer Class Main_Frame. In dieser Klasse habe ich folgende Methode erstellt
Die Beispielklasse sieht so aus:
Jedoch erscheint bei ausführung nur eine leere MsgBox.. Nun die Frage wieso?. Ich möchte das mit Threads machen um die Anwendung bzw die gui nicht zu blockieren. eigentlihc sind die methoden natürlich komplexer aber habe es auf das grundproblem (der zugriff auf variablen außerhalb des threads ist nicht möglich). Sorry falls die frage zu einfach ist ich bin leider noch anfänger in vb =)
Edit: Der Wert von status wird zur Laufzeit ermittelt (in anderer Methode). Wenn ich status gleich bei der Deklaration zB auf "false" stelle funktioniert es richtig. bringt mir aber nichts da ich ja den korrekten wert brauche der erst vorher ermittelt wird. alle ändernungen an der variable werden ignoriert und nur der erste wert angezeigt
Ich habe eine Variable, beispielsweise "status as Boolean" in einer Class Main_Frame. In dieser Klasse habe ich folgende Methode erstellt
Code:
Sub Testthread()
Dim del As ThreadStart
del = New ThreadStart(AddressOf Beispielklasse.Beispielmethode)
Dim myFirstThread As New Thread(del)
myFirstThread.IsBackground = False
myFirstThread.Start()
End Sub
'Die Ausführung mach ich mit "Testthread()" in einem Button_Click handler
Die Beispielklasse sieht so aus:
Code:
Public Beispielklasse
Shared Sub Beispielmethode
MsgBox("Main_Frame.Status")
End Sub
End Class
Jedoch erscheint bei ausführung nur eine leere MsgBox.. Nun die Frage wieso?. Ich möchte das mit Threads machen um die Anwendung bzw die gui nicht zu blockieren. eigentlihc sind die methoden natürlich komplexer aber habe es auf das grundproblem (der zugriff auf variablen außerhalb des threads ist nicht möglich). Sorry falls die frage zu einfach ist ich bin leider noch anfänger in vb =)
Edit: Der Wert von status wird zur Laufzeit ermittelt (in anderer Methode). Wenn ich status gleich bei der Deklaration zB auf "false" stelle funktioniert es richtig. bringt mir aber nichts da ich ja den korrekten wert brauche der erst vorher ermittelt wird. alle ändernungen an der variable werden ignoriert und nur der erste wert angezeigt
Zuletzt bearbeitet: