BackgroundWorker-ből .Xaml hívása (WPF - C#)
2010-06-17T18:12:18+02:00
2010-06-17T22:42:47+02:00
2022-07-25T02:22:26+02:00
  • Szia,

    szerintem ez Tudástár téma.
    A probléma ott kezdődik, hogy csak a Ui szálból illik létrehozni a Ui specifikus dolgokat (control, window, stb) és nem egy background szálból.
    De viszont a következő módon a Ui szálra tudod szinkronizálni az adott műveletet:
    Deployment.Dispatcher.Invoke(() => { //ide jön a Window létrehozás, Ui műveletek... })

    Remélem segítettem valamennyit.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Már több helyen utánaolvastam és a guglit is használtam, de csak Thread-del találtam példát.
    A gondom az, hogy egy projectben van két .xaml window és BackgroundWorker-t indítok hosszú folyamat elindítása miatt. Ez megy is, és a BeginInvoke()-kal a PrograssBar értékét is tudom módosítani, de amikor a másik .xaml-t szeretném létrehozni, akkor az alábbi hibaüzenetet kapom:
    "A hívó szálnak STA típusúnak kell lennie, mert erre felhasználói felület összetevőjének is szüksége van."

    Van valamilyen megoldás rá? Thread-nél a .State akármit, vagy mit írtak, de BackgroundWorker-nél nincs ilyen.
    Szál futtatásból hogy tudom meghívni a másik .xaml ablakot? Oda TextBox-ba és Label-be írni, illetve olvasni, ha OK-ztak? Csak .Hide()-olni szeretném majd.
    Jelenleg a kód simán fut (fő project), később ez .dll-be kerül át, ahol szintén van .xaml. Több project-tel van megoldva (több. dll-ben), de biztos tudjátok.

    Előre is köszönöm!
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: V�gtelen �r�mmel t�ltene el benn�nket, ha megtanuln�d, hogy mi a k�l�nbs�g a T�rsalg� �s a Tud�st�r k�z�tt.
abcd