Hirdetés
- Egész pofás lett a Lian Li új mikrotornya, és az ára sem vészes
- Az Enermax nagyon belehúzott a "tápozásba"
- Holdbázis és űrkupola az Egyesült Államok csillagászati terveiben
- Nem a képgenerálásnak van köze a képmegjelenítés egyenletességéhez
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
- Léghűtés topik
- Nem indul és mi a baja a gépemnek topik
- Amlogic S905, S912 processzoros készülékek
- Hogy is néznek ki a gépeink?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- TCL LCD és LED TV-k
- Hisense LCD és LED TV-k
- Milyen TV-t vegyek?
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
Új hozzászólás Aktív témák
-
joysefke
veterán
válasz
Froclee
#8758
üzenetére
Az async void-dal egy csomó helyen meg van kötve az ember keze.
Event handlerek tipikusan void implementációt akarnak, ott csak az async void jöhet szóba.
Most egy xamarin projekt van előttem megnyitva:
tipikus event handler:
private async void Trending_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new TrendingPage());
}Ez meg egy lifecycle override az ősosztályon, csak async void-ot fogad el
protected override async void OnAppearing()
{
base.OnAppearing();
await something(...)
}szóval én kerülöm ezt az async void dolgot mint a pestist a saját metódusaimban, de amikor az interfész rákényszerít, akkor mit tudnék mást tenni?
-
joysefke
veterán
válasz
Froclee
#8758
üzenetére
Azt elfogadom, hogy az async void Dispose() nem működik úgy ahogyan én azt elvárnám

A compiler az IDisposable interfészre -és úgy általában minden void visszatérésű metódusra- figyelmeztetés nélkül elfogad egy async void implementációt.
Ez fordul és fut (C# 7.1+):
using System;
using System.Threading.Tasks;
public interface iface
{void func1(int delay);
Task func2(int delay);}
class Program : iface
{
static async Task Main(string[] args)
{
Program p = new Program();
Console.WriteLine($"starting {nameof(p.func1)}");
p.func1(3500);
Console.WriteLine($"{nameof(p.func1)} started");
Console.WriteLine($"starting and awaiting {nameof(p.func2)}");
await p.func2(2000);
await Task.Delay(3500-2000 + 500);
}
public async void func1(int delay)
{await Task.Delay(delay);
Console.WriteLine($"Hello from {nameof(func1)}");}
public async Task func2(int delay)
{await Task.Delay(delay);
Console.WriteLine($"Hello from {nameof(func2)}");}
}A
p.func1()hívás nem await-elhető, de működik raja az async keyword, a func1 implementációján belül a compiler kulcsszóvá alakítja az await-et és a func1-en belül awaithelhetőek lesznek az async metódusok. A példában a func1 törzsében a végrehajtás előbb bevárja a Task.Delay()-t és csak aztán ír a konzolra.Szóval ez az async void dolog minden hibájával együtt nagyjából működik.
Ezért nem értem, hogy az xUnit-ban egy async void Dispose hívásban a végrehajtás a Dispose metódus törzsében miért hagyja figyelmen kívül az await kulcsszót, elindítja a Task-ot amit kiadtam neki, de nem várja be
.. .
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Léghűtés topik
- Nem indul és mi a baja a gépemnek topik
- Xbox tulajok OFF topicja
- Okos Otthon / Smart Home
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Amlogic S905, S912 processzoros készülékek
- Hogy is néznek ki a gépeink?
- HÁZIMOZI / HIFI / TV beárazás
- Fotók, videók mobillal
- Építő/felújító topik
- További aktív témák...
- PS4 FAT (1216A 12.02 GOLDHEN)
- FÉLÁRON SZINTE ÚJ HP HyperX Cloud Stinger Bolti ár:25k INGYEN FOXPOST
- Bomba ár! Fujitsu Lifebook T936: i5-6G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W10 I Gari!
- Bomba ár! HP ProBook 640 G2 - i3-6GEN I 4GB I 128GB SSD I 14" FHD I Cam I W11 I Garancia!
- több db DELL P2417 full HD 1920x1080 IPS monitor HDMI - gari + számla
- Razer Blade 17" i7-12800H / 32GB / 1TB / RTX 3080 Ti 16GB / 4K 120Hz
- Panasonic HC-V770 FUL HD kamera
- Eladó szép állapotban levő Apple iPhone 11 64GB fehér / 12 hónap jótállással!
- HIBÁTLAN iPhone 13 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3747
- GYÖNYÖRŰ iPhone 12 Mini 128GB Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS3852
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest

.. .

