Kolik mohu spustit BackGroundWorkeru současně? – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kolik mohu spustit BackGroundWorkeru současně? – .NET – Fórum – Programujte.comKolik mohu spustit BackGroundWorkeru současně? – .NET – Fórum – Programujte.com

 

VladislavK0
Super člen
10. 10. 2014   #1
-
0
-

Zdravím

Ptám se jak při startu programu zjistit optimální počet současně spuštěných BGW když každý z nich instancuje HTTPClienta a tento asynchronně čeká na odpověď. Pokud odpověd prijde pak se BGW rychle ukonči a data se předají k zobrazení do hlavního vlákna. Pokud odpověď nepřijde pak se ten BGW ukončí prostřednictvím instance Timeru (Můj TimeOut).

A druha otázka - je lepší použít instanci Threadu místo BGW, když každá ta nit vykonává takovou to práci a nebo je to fuk?

Díkas za každou odpověď

Nahlásit jako SPAM
IP: 93.99.90.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
p3can
~ Anonymní uživatel
312 příspěvků
10. 10. 2014   #2
-
0
-

Pouzivej Task.StartNew protoze je to vesmes alias k ThreadPool.QueueUserWorkItem. System si pak uridi sam kolik vlaken bude aktivnich.

Nahlásit jako SPAM
IP: 62.209.223.–
VladislavK0
Super člen
10. 10. 2014   #3
-
0
-

Dík za odpověď. Problém je v tom že já ty vlákna potřebuji spouštět v nějakém pořadí a to i ve smyslu ne/platného ukončeni. Takže bych si musel definovat svůj vlastní TaskScheduler (pro System.Threading.Task) no a a tento scheduler pro logiku spouštění již mam hotový. Funguje cca následovně dám mu parametr kolik může být aktivních threadu (tuto info potřebuji spočítat) a když jeden BGW skončí tak nastartuje jiný, dle jiné logiky, která s tímto problémem nesouvisí.

Takže nejsem si jist jestli Task knihovna pomůže a hlavně kolik by to znamenalo změny v kódu.

Nahlásit jako SPAM
IP: 93.99.90.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
p3can
~ Anonymní uživatel
312 příspěvků
10. 10. 2014   #4
-
0
-

V ramci TPL (tasku) jde delat spoustu veci. Muzes mit napr kolekci vstupnich dat ktere potrebujes zpracovat. To muzes udelat pres Parallel.ForEach. Jakmile se provedou vsehny vlakna tak ti to skoci zase zpatky do "hlavni vetve". Ale moznosti jak ruzne retezit tasky je skutecne mnoho a vsechny by meli byt jendoduche.

Nahlásit jako SPAM
IP: 62.209.223.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý