C# szálkezelés?
Most tanulom C#-ban a szálkezelést. Értem az elvét, viszont nem tudom, hogy egy olyan programban, ahol a függvények egymásra épülnek (tehát nem tudnak egy időben dolgozni), ott hogyan lehetséges a szálkezelés?
Tehát azt szeretném elérni, hogy a felhasználói felület ne fagyjon ki.
Például:
string tartalom = getContent();
List<string> lista = getData(tartalom);
Tegyük fel, hogy van mondjuk 3-4 ilyen függvény és mindegyik időigényes műveletet. Ebben az esetben, hogyan tudom a GUI-t és a műveleteket külön szálra tenni?
Létrehozol egy szálat az első függvénynek, és amikor az végig ér, akkor ő indítja a második függvényt egy másik szálon, stb.
De ez nem éppen jó megoldás, a tervezéssel van gond akkor. Egyébként nem tudom biztosan, de úgy rémlik, hogy a c#-nál ha winform vagy wpf van, az automatikusan külön szálon indul.
Köszönöm szépen a válaszokat! Tudnátok mutatni egy példát arra, hogyan lehet Invoke-ot a GUI szálra tenni?
Kipróbáltam több ötletet is, de sajnos egyik sem működött. Vagy kifagyott továbbra is, vagy StackOverFlow-ba ütköztem.
Például ezzel (csak az Invoke-ot átírtam Dispatcher.Invoke-ra WPF miatt)
A függvények gombnyomásra hívódnak meg, ezért az "async és await" megoldást választottam többszörös await használattal.
Ez így működik, de nem tudom mennyire "szabályos" megoldás, tehát nem tudom, érdemes-e így használni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!