BackGroundWorker zastavenie – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

BackGroundWorker zastavenie – .NET – Fórum – Programujte.comBackGroundWorker zastavenie – .NET – Fórum – Programujte.com

 

Tayson0
Stálý člen
13. 6. 2013   #1
-
0
-

Aky sposobom zastavim vykonavanie vlakna v nekonecnom cykle ktore mi bezi na pozadi. Najlpsie ak by som to zastavil tlacidlom. Dakujem

Nahlásit jako SPAM
IP: 85.237.239.–
JardaJirava0
Stálý člen
13. 6. 2013   #2
-
0
-

Ahoj,

záleží na tom, jakým způsobem jsi to nové vlákno rozeběhl. Pokud jsi použil třeba Task, tak máš k dispozici CancellationTokenSource a pak můžeš nově rozběhnutou úlohu snadno zastavit. 

CancellationTokenSource tokenSource = new CancellationTokenSource(); // je dejmetomu clenska promenna tridy
// pak si rozebehnes novou ulohu
var token = tokenSource.Token;
Task taskWithToken = new Task(
    () =>
    {
        while (true)
        {
            if (tokenSource.IsCancellationRequested)
            {
                break;
            }
// tady neco delam
        }
    }, token
);
taskWithToken.Start();

// a tady prijde zastaveni te ulohy
tokenSource.Cancel()

Snad jsem na nic zásadního nezapoměl.

Pěkný den,

Nahlásit jako SPAM
IP: 213.192.30.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
JardaJirava0
Stálý člen
13. 6. 2013   #3
-
0
-

Ahoj,

teď koukám, že se ptáš na BackgroundWorker. Těch dotazů tady máš tolik, že se v tom přestává člověk orientovat :-)

U BW je to tak, že mu musíš nastavit, že může být zastaven pomocí vlastnosti WorkerSupportsCancellation. Potom v obsluze události DoWork kontroluješ, zda je nějaký čekající cancel, pomocí vlastnosti CancellationPending, a pokud je, tak nastavíš, do argumentu metody e.Cancel = true; a cyklus ukončíš. Samozřejmě následně musíš v obsluze události RunWorkerCompleted otestovat, zda ti úloha doběhla nebo byla cancelována přes e.Cancelled.

Pěkný den,

Nahlásit jako SPAM
IP: 213.192.30.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
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, 15 hostů

Podobná vlákna

BackgroundWorker C# — založil plasmo

C# backgroundWorker Cancel — založil Roman

BackgroundWorker blokuje UI — založil ondrej39

Zastavenie tkinter — založil stanke

 

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