- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- droidic: Időutazás floppyval: A 486-os visszavág PCem-men
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- Luck Dragon: Asszociációs játék. :)
- bambano: Bambanő háza tája
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- Butcher82: Retro - műanyag fehérítés
Hirdetés
Ú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!
- Új,bontatlan,dobozos, számlás,garanciás 7800X3D CPu.
- HP 640 G5 laptop - 14FHD/I5-8265U/8-16-32GB/256SSD/Win11-Win10 - 2 év garancia
- HP 650 G4 laptop - 15,6FHD/I5-8250U/8-16GB-32GB/256SSD/Win11-Win10 - 2 év garancia
- Ubiquiti Unifi Access Intercom
- TCL 55C745 TV 4K FALD, HDR Dolby Vision, DTS, 2029.07-ig garanciális, dobozában, fóliás, karcmentes.
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 3 Év Garanciával
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Fotó állvány eladó
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: FOTC
Város: Budapest