- Meggyi001: RTX 5060 - Az új népkártya?
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- vrob: Az utolsó DOS játékok 1996 - 1997-ben, egy korszak lezárul
- stefi68: AnySoft Keyboard (magyarul)
- eBay-es kütyük kis pénzért
Hirdetés
Köszönjük a sok biztatást, támogatást! Utolsó pillanat a féláras hirdetésfeladásra, előfizetésre!
Ú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!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fotók, videók mobillal
- Meggyi001: RTX 5060 - Az új népkártya?
- WoW avagy World of Warcraft -=MMORPG=-
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- Hardcore café
- Battlefield 6
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- Horgász topik
- Otthoni hálózat és internet megosztás
- További aktív témák...
- Samsung Galaxy S25 Ultra, 12/512, ezüstkék titán
- Dell Latitude 7320: i5-1145G7/16GB /512GB SSD/13"3 FHD, Touch, Matt/Win11 Pro
- HP Chromebook 14a-na0099ng :Intel Celeron N4000/4GB/32GB eMMC/14"FHD/Chrome OS
- Apple iPhone 16Pro 128GB Kártyafüggetlen 3Év Garanciával
- 0 perces RYZEN laptop, eredeti Win10! FullHD IPS / 1 TB M.2 NVMe SSD! LEGOLCSÓBB SZÁMLÁS ÁR!
- Lenovo Thinkcentre M920t Tower/ M720s SFF / i5-8-9. gen/ WIN10-11/számla, garancia
- Felsőkategóriás merev csöves Gamer PC-Számítógép! I9 11900K / RTX 3090 24GB / 64GB DDR4 / 1TB SSD
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Újszerű Asus ROG Strix G16 G614 -16" WUXGA 165Hz - i5-13450HX - 16GB - 512GB -RTX 4050 -1,5 év gari
- AKCIÓ! Lenovo Legion Slim 5 Gamer notebook - R7 7435HS 16GB RAM 1TB SSD RTX 4070 8GB GDDR6 WIN11
Állásajánlatok
Cég: FOTC
Város: Budapest