| |

VB.NET - Ein- und UmsteigerRe: .ShowDialog(owner) bei verschiedenen Threads, wie? | |  | Autor: keco | Datum: 29.03.10 19:39 |
| Zitat: |  | Könnte es sein, das Du nach der langen Zeit im Forum und den
hunderten von Threads in diesem Forum zu
Backgroundworker und CO immer noch nicht verstanden hast, das
man niemals von einem Extra Thread aus
ein UI Control ansprechen gescheweide denn erzeugen darf. |  |
Ich bin mir sehr wohl bewusst, dass man zwischen den Threads kein UI Control ansprechen darf. Das wollte ich auch damit verhindern, dass ich darin die Form erzeuge. Diese wäre für den 2. Thread existent und könnte problemlos davon verwendet werden, oder nicht?
Jedenfalls habe ich deswegen auch versucht das mittels Invoke für diesen Thread zugänglich zu machen. Oder ist Invoke ebenfalls ein schlechter Stil alá GoTo?
[qoute]Das erzeugen Der Form, sowie der Aufruf der ShowDialog routine muss aus dem GUI Thread erfolgen.
Es gibt keine andere Möglichkeit und alles andere ist auch blödsinn.[/qoute]
Das habe ich erhofft damit zu bewirken, dass ich ein Event auslöse und die Form des Hauptthreads auf dieses Event hin reagiert und die Form erzeugt. Wie ich allerdings eben feststellte passiert das im DoWork-Ereignis des BackgroundWorkers, wodurch ich threadübergreifende Vorgänge erwirke. Aber auch da dachte ich eben, dass ich per Invoke zu einer Lösung komme.
[qoute]Erzeuge in der Invokeden Routine ( weil im GUI Thread ) den Dialog, und gib den Namen zurück.[/qoute]
Das verstehe ich nicht. Ich soll in dieser Methode: Private Function ShowForm(ByVal frm As Form) As DialogResult
Return frm.ShowDialog(Me)
End Function kein DialogResult sondern den Name der Form zurückgeben? Also so: Private Function ShowForm(ByVal frm As Form) As String
Return frm.Name
End Function Da sehe ich allerdings nicht wirklich viel Sinn darin. Vielleicht kannst du mir das kurz erklären?
Achso, da fällt mir eben ein. Wäre es grundsätzlich möglich, dass ich in der Klasse, die die Funktionalität bereitstellt, eine Eigenschaft vom Typ Form anbiete und darüber die Form anzeige? Das würde heißen, dass wenn ich eine Instanz der Klasse erzeuge (im Hauptthread) ebenfalls eine Instanz der aufzurufenden Form erzeuge und diese an die Eigenschaft übergebe? Dann ist doch die Form im GUI Thread erstellt wurden. Ist das denn eher die richtige Herangehensweise?
Ich weiß einfach nicht, wie ich die Arbeit des Threads solange pausieren kann, bis der Anwender über einen Dialog eine entsprechende Wahl getroffen hat und dieser anhand der Benutzerentscheidung weiterarbeitet. |  |
 .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.726 | keco | 28.03.10 21:02 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.892 | Manfred X | 28.03.10 21:15 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.088 | keco | 28.03.10 21:31 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.916 | Manfred X | 28.03.10 21:39 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.871 | keco | 28.03.10 21:47 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.894 | Manfred X | 28.03.10 21:58 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.872 | keco | 28.03.10 22:03 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.170 | keco | 28.03.10 22:16 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.866 | FZelle | 29.03.10 13:42 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.076 | keco | 29.03.10 19:39 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.091 | FZelle | 29.03.10 19:57 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.906 | keco | 29.03.10 20:08 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.837 | Manfred X | 29.03.10 20:35 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.120 | Manfred X | 29.03.10 20:00 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.101 | keco | 31.03.10 09:15 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.910 | Manfred X | 31.03.10 09:23 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.896 | keco | 31.03.10 09:40 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.817 | Manfred X | 31.03.10 10:05 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.892 | keco | 31.03.10 12:23 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.905 | DaveS | 31.03.10 12:49 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.036 | keco | 31.03.10 12:59 |      Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.837 | DaveS | 31.03.10 13:24 |       Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.843 | keco | 31.03.10 20:59 |        Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.933 | DaveS | 01.04.10 09:11 |         Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.876 | Manfred X | 01.04.10 09:16 |          Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.825 | DaveS | 01.04.10 09:42 |          Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.879 | FZelle | 01.04.10 11:07 |   Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.885 | keco | 01.04.10 16:45 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 4.019 | DaveS | 01.04.10 18:05 |     Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.832 | keco | 01.04.10 20:26 |    Re: .ShowDialog(owner) bei verschiedenen Threads, wie? | 3.987 | FZelle | 02.04.10 11:45 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|