Kezdőoldal » Számítástechnika » Programozás » C# szálkezelés?

C# szálkezelés?

Figyelt kérdé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?


2018. szept. 2. 19:52
 1/3 anonim ***** válasza:
async és await, vagy Invoke a GUI szálra
2018. szept. 2. 20:54
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

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.

2018. szept. 2. 20:59
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

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)

[link]


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.

2018. szept. 3. 11:08

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!