Diskuze: wpf: Int zvětšující se v závislosti na čase
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Timer
Problem je, ze to jede v jednom vlakne a ty to vlakno uspavas... Mrkni sem: http://www.itnetwork.cz/…-pomoci-uloh
Luboš byl až příliš stručný - takže znova :
vše co potřebuješ je Timer
Timer je dobrý nápad, ale já byt to řešil asi takto:-)
Nezapomen uplne nahoru pridat using:
using System.Threading.Tasks;
public partial class MainWindow : Window
{
// definice promenne
int i = 0;
public MainWindow()
{
InitializeComponent();
}
private void Window_Activated(object sender, EventArgs e)
{
// po aktivaci okna spustim odpocet
Odpocet();
}
/// <summary>
/// odpocet
/// </summary>
private void Odpocet()
{
// toto vytvori ulohu, ktera neblokuje hlavni vlakno a ktera po uplynuti 1000ms (1s) spusti metodu Refresh()
Task.Delay(1000).GetAwaiter().OnCompleted(() => Refresh());
}
/// <summary>
/// refresh
/// </summary>
private void Refresh()
{
// navysim i o 1 (jde to taky zapsat takto i = i+1;
i++;
// aktualizuji label (nauc se psat nazvy prvku bez diakritiky a idealne k nim pridavat i typ prvku...)
drevoLabel.Content = i;
// znovu spustim odpocet :-)
Odpocet();
}
}
Časem zjistíš, že to není úplně nejpřesnější, zvláště když
budeš před voláním Odpocet() provádět mnoho dalších operací.
Až budeš zkušenější, budeš to zkusit vyřešit pomocí vlastnosti Ticks
Zobrazeno 5 zpráv z 5.