Kezdőoldal » Számítástechnika » Programozás » C# async/await: nem az a...

C# async/await: nem az a lényege, hogy az async method-ok párhuzamosan fussanak egymással?

Figyelt kérdés

[link]


Próbáltam ezt is megérteni, plusz írtam is egy kis programot.


Thread.Sleep()-et használtam, lehet, hogy ez a probléma?


A lényeg az, hogy nem annyi ideig futott a progim, mint a leghosszabb Thread.Sleep() várakozás, hanem mint a 3 összege. (3 metódust hívtam így). Tehát végeredményben egymás után futottak és nem egyszerre.


Értem, hogy a Thread.Sleep() a current thread-et blokkolja, de nem az az async lényege, hogy a háttérben új thread indul, csak "elfedve", tehát nekünk csak az async-await-re van dolgunk?


A metódusba, ahonnan hívtam ezeket, egyéb kódot is tettem és kiíratást a standard output-ra, de azok se jelentek meg addig, amíg a 3 X Thread.Sleep() ideje le nem telt.



2020. jan. 16. 12:19
1 2 3
 1/23 A kérdező kommentje:

Légyszi segítsetek, mert nagyon fontos lenne megértenem, suliban (ha lesz pénzem maradni) 2 év múlva tanuljuk, akkor se ezt, ha rákeresek, akkor csak még jobban összezavarodok.



Kipróbáltam totál máshogy is és semmiféle Thread.Sleep() nincs benne és azt látom, hogy egymás után futnak a dolgok, bevárják egymást, akkor mi az egész lényege?

2020. jan. 16. 16:33
 2/23 anonim ***** válasza:
43%
Nem hoz lètre ùj threadet, csak Taskot, tehàt a Thread.Sleep mindenkèppen meg fogja fogni. Helyette csinàlj egy for ciklust, ami elszàmol monjuk tìzezerig, bele valami printelès konzolra, az bőven elèg időbe fog telni. Az async metòdod utàn meg printelj ki valami szöveget, ès ezt az egèszet rakd bele egy while(true) -ba ès most nèzd meg mi törtènik.
2020. jan. 16. 16:57
Hasznos számodra ez a válasz?
 3/23 A kérdező kommentje:

Ilyesmit csináltam most legutóbb, egyik csak kiír a konzolra, a másik számjegyeket megfordít, a harmadik megint hosszabban fut.

És egymás után mind. :(

2020. jan. 16. 17:14
 4/23 anonim ***** válasza:
29%
A kódod gondolom Google vagy Microsoft licensz védi, azért ennyire titkos.
2020. jan. 16. 19:39
Hasznos számodra ez a válasz?
 5/23 A kérdező kommentje:
Alapból nem értem az async, await működését, ehhez milyen kódra van szükséged?
2020. jan. 16. 19:45
 6/23 anonim ***** válasza:
52%

Nekem aztán semmilyenre.

Sok sikert.

2020. jan. 16. 20:13
Hasznos számodra ez a válasz?
 7/23 A kérdező kommentje:

Olyan mindegy nekem is, mert úgyse jutok semmire ebben a szakmában.



Azért köszöntem a nagy semmit.

2020. jan. 16. 20:24
 8/23 anonim ***** válasza:

"És egymás után mind. :("


Miért, hogy kéne futniuk?


Minden taszk, vagy thread kap egy időszeletet. A feldsolgozás szekvenciális. Egyszer az egyik thread kap időt, aztán a másik és így tovább. Körbe-körbe. A thread-ek prioritását lehet változtatni és akkor a magasabb prioritású több időszeletet kap. A sleep megakasztja a thread futását, addig a többi fut. De egyszerre -egy magon- egy taszk vagy thread fut csak.

2020. jan. 16. 20:29
Hasznos számodra ez a válasz?
 9/23 A kérdező kommentje:
Jó, akkor C#-on hogyan lehet vagy szoktak párhuzamosan programozni?
2020. jan. 16. 20:36
 10/23 anonim ***** válasza:
50%
async/await-tel.
2020. jan. 16. 20:43
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!