Bacground Worker   otázka

VB.NET, Threading, WinForms, Databáze

Prosím o nasměrování. Zkouším použít komponentu BackgroundWorker (BW) dle návodu zde: http://www.mstv.cz/vyvojari/videos/125/P...

Jenže jsem zhavaravola na tom, že z vedlejšího vlákna se ovládají některé komponenty na hlavním vlákně atd., čili bych potřeboval nasměrovat co ponechat v hlavním vláknu, co přesunout do komponenty BGW.

Program dělá asi toto:

a) Udělá kontrolu na přítomnost databázového souboru

b) Vytvoří SQL dotaz

c) Vytvoří connection string

d) Připojí se k databázi (Access)

e) Výsledek uloží do datasetu (DS)

f) Připojí odpovídající tabulku k DataGridWiew (DGW1.DataSource = DS.Tables(0))

g) Upraví rozměry sloupců a další parametry v DGW

f) Nastaví DGW na visible

Když to dělám v jednom vlákně, aplikace jakoby na chvíli zmrzne, pak se naplní DGW a dál již všechno funguje jak má. Co bych chtěl je, něco z toho dát do BW, aby aplikace nezamrzala, jenže havaruju na těch křížových věcech.

Poradí někdo aspoň filozofii jak aplikaci navrhnout, aby to fungovalo. Myslím co nechat v hlavním vlákně, co dát do BW.

Děkuji

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

zhavaravola?

BackgroundWorker má synchronizaci zabudovanou v sobě a není potřeba ji dělat ručně. Zjednodušeně řečeno ve vlastním vlákně pouštět všechny déletrvající operace a v hlavním vše, co se týká uživatelského rozhraní. Pochopitelně když budete provádět nějakou aktualizaci DataGridViewu, která bude trvat 5 vteřin, tak vám žádné vlákno nepomůže.

nahlásit spamnahlásit spam 1 / 1 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