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.
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...
})
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.
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.