Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 16497|Odpoveď: 5

[Zdroj] .NET/C# viacvláknová súbežnosť pomocou pitu HttpWebRequest

[Kopírovať odkaz]
Zverejnené 2021-12-20 15:21:04 | | | |
Pri plánovaní úloh je úlohou plánovania simulovať iniciovanie HTTP požiadavky a zistiť, že keď je úloh viac, plánovanie úloh pôsobí ako falošná smrť.

Maximálny predvolený počet požadovaných pripojení na bežnom Windows systéme je 2 a na serverovom operačnom systéme je predvolene 10. Ak tento limit súbežného pripojenia neupravíte,Potom je počet http pripojení, ktoré môže klient vytvoriť naraz, len 2 alebo 10

System.Net.ServicePointManager.DefaultConnectionLimit Toto je maximálny počet pripojení, ktoré môžu získať aktuálne predvolené nastavenie, ako je znázornené na obrázku nižšie:



Existuje predvolený limit súbežnosti pre HttpClient?

Pred .Net 4.0 sa Http operácie spoliehali na HttpRequest. Štandardne má veľmi konzervatívne maximum 2 limity súbežnosti pre tú istú stránku, čo často spôsobuje, že HttpWebRequests nedosahuje ideálnu rýchlosť ako predvolene (táto stratégia frustruje mnohých programátorov), a hodnota App.config alebo ServicePointManager.DefaultConnectionLimit musí byť upravená.

MS zaviedol triedu HttpClient v .Net 4.5 na spracovanie Http operácií a myslel som si, že HttpClient a HttpWebRequest nasledujú rovnakú politiku. Dnes, keď som písal viacvláknový sťahovací program, som použil 10 súbežných pripojení a zistil som, že HttpClient nemá štandardný limit súbežného počtu používateľov.

Najprv som si myslel, že áno. Net 4.5 tento limit súbežnosti odstránil (veď dnes už tento štandard prakticky nikto nedodržiava), potom prepísal príslušný kód pomocou WebRequest a zistil, že stále ide o limit 2 súbežnosti a hodnota ServicePointManager.DefaultConnectionLimit bola tiež 2. To znamená, že HttpClient nie je riadený politikou súbežnosti HttpWebRequest a neexistuje žiadny systémový limit súbežnosti.

Okrem toho som počas testovania zistil, že HttpWebRequest nevyžaduje maximálne 2 súbežnosti pre všetky adresy. NapríkladPre lokálne HTTP adresy neexistuje limit súbežnosti (http://localhost/*).

C# viacvláknové volania prostredia na HttpWebRequest limit súbežného pripojenia

.netov HttpWebRequest alebo WebClient má v prípade multithreadingu limit súbežného pripojenia, ktorý je predvolene 2 na desktopových operačných systémoch ako Windows XP a Windows 7 a predvolene 10 na serverových operačných systémoch. Ak tento limit súbežného pripojenia nezmeníte, počet HTTP spojení, ktoré môže klient naraz vytvoriť, je len 2 alebo 10. Pre niektoré aplikácie, ako sú prehliadače alebo pavúky, je počet 2 alebo 10 súbežnosti príliš malý a výrazne ovplyvňuje výkon aplikácie. Tento limit súbežného pripojenia je spôsobený štandardmi HTTP 1.0 a HTTP 1.1, ktoré špecifikujú maximálne 2 súbežné spojenia. Avšak bežné prehliadače už toto pravidlo nedodržiavajú, no .NET framework ho stále štandardne dodržiava.

Mnohé články uvádzajú, že asynchrónny prístup k HttpWebRequest môže zlepšiť výkon súbežného pripojenia, ale ja som testoval, že ak nezmeníte predvolený počet súbežných pripojení, výkon synchronného alebo asynchrónneho prístupu nie je dobrý.

Maximálny počet súbežných spojení môžeme tiež nastaviť v app.config nasledovne:

Referenčný článok

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:Xshell Xftp Aby ste mohli pokračovať v používaní tohto programu, musíte použiť najnovšie...
Budúci:Príkaz Maven posiela balíčky tretej strany do súkromných repozitárov Nexusu
Zverejnené 2021-12-26 17:20:57 |
Naučte sa učiť。。。。。
Zverejnené 10.1.2022 08:42:47 |
Naučte sa učiť。。。。。
Zverejnené 8. marca 2022 o 15:58:54 |
Učiť sa...
 Prenajímateľ| Zverejnené 2023-2-18 21:47:09 |
Okrem toho riešenie

 Prenajímateľ| Zverejnené 10. marca 2023 o 21:21:15 |
Konfigurácia cez web.config

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com