[C# - WPF] "The calling thread must be STA"...

Ez a téma lezárásra került a moderátor által.
[C# - WPF] "The calling thread must be STA"...
2015-06-26T10:11:00+02:00
2015-06-26T12:34:44+02:00
2022-10-15T22:16:28+02:00
TaM E E
Sziasztok!
Egy Kliens - Szerver programot készítek. A Kliens oldalon Két szál fut, az egyik "hallgatózik" új csomagok után, a másik pedig ugye a grafikus felületet kezeli. A gond az, hogy amikor futási időben egy új csomagot kapok a sikeres bejelentkezésről és egy új usercontrol objektumot akarok létrehozni a MainWindowon akkor ezt a futási idejű hibaüzenetet kapom:
"An unhandled exception of type 'System.InvalidOperationException' occurred in PresentationCore.dll

Additional information: The calling thread must be STA, because many UI components require this."

Átolvastam a doksikat, de sajnos eddig egyik megoldás se hozott eredményt. Előre is köszönöm a segítséget!
Mutasd a teljes hozzászólást!
Szia!

Azért kapod az üzenetet, mert nem a UI szálról próbálsz meg hozzáférni a felülethez. Dispatcher-t kell használnod a kontrol felvételéhez. Pl. így:

Application.Current.Dispatcher.Invoke(new Action<object[]>(KontroltFelvesz), new object[] {null});
Ahol a KontroltFelvesz függvény így néz ki:

private void KontroltFelvesz(object[] parameterek) { ... Ide kell a kontrolt felvevő kód }
és a feladata, hogy felvegye az új kontrolt.
Mutasd a teljes hozzászólást!

Ez a téma lezárásra került a moderátor által.
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd