Thread   otázka

VB.NET, Threading, WinForms

Zdravim. Vedel by mi niekto poradit?:

Ked spusim proceduru v novom vlakne, s novym formularom v ktorom mam cyklus s prikazom Application.Doevents, funguje vsetko v pohode az dokedy nekliknem na form alebo ho nepresuvam. Procedura prestane bezat. Ak formular uvolnim(nepresuvam ho) procedura pokracuje dalej.

Diky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepochopitelně formulovaný dotaz. Pokud chcete zamezit "zamrzání" uživatelského rozhraní (formuláře) přesunutím náročné metody do vlastního vlákna, není třeba kdekoliv používat DoEvents() což je i tak zbytečná funkce.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

...mal som na mysli nieco podobne ako ked v total commanderi kopirujem alebo presuvam subory v pozadi, a pritom je mozne pohybovat s formularom na ktorom je progressbar bez toho aby sa progressbar zastavil, a aby bolo mozne proces kedykolvek zastavit s tlacitkom cancel. Ak v cykle nepouzijem DoEvents tak nemozem spustit udalostnu proceduru tlacitka cancel.

Da sa riesit tento problem aj inak?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Žádný cyklus není třeba provádět. Metoda se spustí nezávisle ve vlastním vlákně a průběh operace hlásí pomocí delegáta metody případně vyvoláním události. Tlačítkem Cancel zavoláte metodu Abort příslušného vlákna a ošetříte vyjímku ThreadAbortException.

Pro začátečníky bude asi nejlepší použít komponentu BackgroundWorker.

Doporučuji nastudovat základy asynchronního programování než se budete do něčeho takového pouštět...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diky. ...to bude asi najlepsia cesta ako sa k niecomu dopracovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback