Vlákno a jeho použití   zodpovězená otázka

C#, Threading, WinForms

Dobrý den, stále přemýšlím jak vyřešit můj problém a napadá mě pouze použití vlákna, ale jelikož s tím nemám žádné zkušenosti, potřeboval bych aspoň trochu poradit, jak bych měl postupovat. Takže můj problém: ve formu vykresluji běžnou 2D grafiku v metodě Form_Paint, dále mám Timer, který se pomocí Ticku stará o zobrazení času (kolik uplynulo od spuštění formu) a vypíše jej do labelu. Vše funguje bezproblémů, ovšem potíže nastanou, když vykresluji více grafiky, potom zřejmě nestíhá timer vykonávat svou činnost, a čas v labelu nesouhlasí. Proto mě napadlo, že kdybych vytvořil nové vlákno, které by zastupovalo činnost Timer_Ticku, tak by to mělo běžet v pořádku. Poradil by někdo zkušený v tomto oboru, jak přibližně na to ? Četl jsem různé články a tutoriály, ale nějak mi to ne a ne jít do hlavy. Předem děkuji za všechny odpovědi.

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

To nepomůže. Timer sám o sobě běží ve vlastním vlákně. Problém hledejte jinde. Timer také z důvodu synchronizace vláken přehazuje svoji činnost vykonávanou v Tick do hlavního vlákna aplikace a pokud to je zaneprázdněno vykreslováním, to bude ten problém.

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

Aha, tak v tom případě jsem asi bezmocný. Nic jiného mě totiž nenapadá.

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

A čo tak vypisovať čas v metóde Form_Paint? A na jeho sledovanie môžte použiť System.Diagnostics.Stopwatch a ešte to bude aj presnejšie.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Stopwatch? Proč tak zbytečnou a náročnou věc? Stačí si při spuštění uložit čas a z toho při každém Paintu (nebo něčem vhodnějším) získat TimeSpan odečtením od DateTime.Now.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji všem za rady, nakonec jsem to vyřešil podle pana Linharta a vše funguje tak jak má. Takže dík moc ;-)

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