Hirdetés
- Elalmásodik a Xiaomi: 100 wattos töltéssel érkezik a 16 Pro Max
- Nincs megállás akkuméretben
- One mobilszolgáltatások
- Hivatalos a One UI 8 frissítés közzététele
- Akciófigyelő: Megnyílt a Xiaomi hivatalos magyar webáruháza
- Samsung Galaxy S25 - végre van kicsi!
- Törik-e a Pixel Pro, mint a tavalyi Fold?
- Vivo X200 Pro - a kétszázát!
- Xiaomi 13 - felnőni nehéz
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
joysefke
veterán
Mi lenne a proper way helyette?
Nem vagyok biztos benne (*).
De első körben én megnézném, hogy Program.cs.Main()-ben egy új meztelen Thread-et létrehozva és azon indítva a WebHost-ot, hogyan viselkedik a webserver. De én a Thredeket sem szeretem* Ami miatt bizonytalan vagyok, az az, hogy hogyan akarjuk/tudjuk kezelni a webservice esetleges chrashét. (egyáltalán akarsz-e ezzel foglalkozni):
Ha a background thread (ami a webservert futtatja) crashel (kezeletlen exception jön belőle) akkor érdemes lenne ezt az exceptiont valamilyen szinten elkapni, loggolni és vagy újraindítani a szervert vagy inkább az egész alkalmazást leállítani. Ez az egész opcionális, de alapvetően nem egészséges megadni az esélyét hogy egy bármilyen threadben kezeletlen exception ragadjon.
Ahogy nézem a BackgroundWorkeren van egy erre használható event: "RunWorkerCompleted" , az eventargs pedig: "RunWorkerCompletedEventArgs" ennek pedig van egy Error propertyje ami az esetlegesen elkapott exceptiont tartalmazza...
Ha Threadben gondolkodsz akkor jó pár alternatív opciód van amit mérlegelhetsz.
De én valószínűleg Task-ként futtatnám a webservert. A te esetedben nyilván az volt a "baj", hogy a WebHost.RunAsync() metódus által visszaadott Task-ot azonnal awaitelni akartad a fő száladon, így a fő programszál nekiállt async várakozni a Task elkészültére, ami ugye egy szervernél amíg le nem állítják nem fog megtörténni.
Ha a fő programszálad amúgy sem lép ki magától akkor szerintem a a WebHost.RunAsync() által visszaadott Task-ot sem kell nekiállnod awaitelni benne (ha tudod, hogy exception történt akkor érdemes) ettől függetlenül a viszakapott Task refernciáját nyilván elmented, hiszen ezen keresztül mindig tudod ellenőrizni az állapotát és szükség szerint awaitelve ki is tudod belőle szedni az esetleges exceptiont.
A fenti példában például a Console.ReadKey() blokkolja a fő szálat. Amíg a fő szál nem ért véget, addig a background threadeket (beleértve amelyek Task-ba vannak csomagolva) a runtime nem zárja be addiíg amíg azok nem fejezik be maguktól a futást.
Ú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!
- Milyen billentyűzetet vegyek?
- Elalmásodik a Xiaomi: 100 wattos töltéssel érkezik a 16 Pro Max
- Nincs megállás akkuméretben
- Erősítő, hangfalak
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Chieftec játék értékes nyereményekkel!
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Canon EF 300mm f/2.8L IS USM teleobjektív - Újszerű -
- EVGA 1080Ti SC2 11GB Ajándékokkal, Ingyenes szállítás!
- AMD Ryzen 7 5800X3D 8-Core 3.4GHz - Garancia 2026.10.17 - Ingyen posta
- ASUS ROG STRIX 1000W GOLD AURA EDITION - Garancia 2034.10.03
- ASUS ProArt GeForce RTX 4080 SUPER OC 16GB - Garancia 2027.10.03
- Legjobb kijelzős! ThinkPad T14s Gen 2 i5-1135G7 16GB 512GB FHD - 400nit! magyarbill 1 év garancia
- Olcsó Notebook! Lenovo Ideapad 3! Ryzen 3 3250U / 8GB DDR4 / 128GB SSD
- HIBÁTLAN iPhone 13 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3015
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- Bomba ár! HP EliteBook 830 G6 - i7-8G I 16GB I 512SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest