Hirdetés
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S23 Ultra - non plus ultra
- Xiaomi 14 - párátlanul jó lehetne
- Xiaomi 15 - kicsi telefon nagy energiával
- Okosóra és okoskiegészítő topik
- Google Pixel topik
- Szerkesztett és makrofotó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!
- V.Milán: Lapdiffúzor nyomáseloszlása: gondoltad volna?
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Milyen alaplapot vegyek?
- Androidos tablet topic
- Xiaomi 15T Pro - a téma nincs lezárva
- Ne már! Drágább lesz a GPU a memóriapánik miatt?
- Elektromos rásegítésű kerékpárok
- Számos VGA kihalhat a memóriapánik miatt
- E-roller topik
- PlayStation 5
- További aktív témák...
- Gigabyte GeForce 760 4 GB -os VGA kártya ! aKCIóó!
- Apple iPhone 13 Pro / 128GB / Kártyafüggetlen / 12Hó garancia / Akku : 100%
- ÚJ Lenovo LOQ 15AHP10 - 15.6"FHD 144Hz - Ryzen 7 250 - 16GB - 1TB - Win11 - RTX 5050 - 3 év garancia
- Érintő képernyős Dell Latitude 5547 (4. gen.i7, 2 GB Radeon VGA, 240 SSD ,16 GB) olcsón!!!! AkciÓÓ!
- Zenbook S 16 UM5606WA 16" 3K OLED Ryzen AI 9 HX370 890M 32GB 1TB IR kam gar
- ÚJ Acer Nitro V ANV15 - 15.6"FHD IPS 165Hz - i5-13420H - 16GB - 512GB - RTX 4060 -Win11 - 3 év gari
- Apple iPhone 13 Pro Max / 128GB / Kártyafüggetlen / 12Hó Garancia / akku: 100%
- GYÁRI TÖLTŐK DELL LENOVO HP FUJITSU TOSHIBA Macbook---------- Budapest,/MPL/Foxpost
- Gamer PC-Számítógép! Csere-Beszámítás! R7 2700X / GTX 1080Ti / 16GB DDR4 / 512 SSD!
- Bomba ár! Lenovo ThinkPad E570 - i3-7GEN I 8GB I 180GB SSD I HDMI I 15,6" FHD I Cam I W11 I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



