Hirdetés
- Kormányok / autós szimulátorok topikja
- Projektor topic
- Milyen videókártyát?
- Milyen TV-t vegyek?
- HDD probléma (nem adatmentés)
- 5.1, 7.1 és gamer fejhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Brutálisan elszállhat az új PC-s Snapdragon fogyasztása
- HiFi műszaki szemmel - sztereó hangrendszerek
- VR topik (Oculus Rift, stb.)
Ú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!
- exHWSW - Értünk mindenhez IS
- Kormányok / autós szimulátorok topikja
- Projektor topic
- E-roller topik
- Luck Dragon: Asszociációs játék. :)
- Sütés, főzés és konyhai praktikák
- Autós topik
- Kiesett a pikszisből a BOE
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Milyen videókártyát?
- További aktív témák...
- Zenbook S 16 UM5606WA 16" 3K OLED Ryzen AI 9 HX370 890M 32GB 1TB IR kam gar
- Xiaomi Redmi 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung,Dell,iiyama,LG,BenQ,AOC monitorok,garancia,számla,22-24",IPS,TN,W-LED,HD,FHD,FHD+
- Samsung Galaxy A56 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- GIGABYTE AORUS FO32U2 Monitor(oled,4k,240hz)+ monitor arm
- Lenovo T14 Thinkpad Gen3 WUXGA IPS i5-1245U vPro 10mag 16GB 512GB Intel Iris XE Win11 Pro Garancia
- 156 - Lenovo LOQ (15IRH8) - Intel Core i5-13505H, RTX 4060
- HIBÁTLAN iPhone 13 mini 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3408
- BESZÁMÍTÁS! Asus H370 i7 8700K 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva A-data 600W
- iPhone 13 emelt kapacitású 3500mAh diagnosztizálható akkumulátor, +ajándék ragasztó
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



