private void aMethod()
{
aTimer = new System.Timers.Timer(3000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimerEvent);
aTimer.Enabled = true;
aTimer.Start();
}
private void button4_Click(object sender, RoutedEventArgs e)
{
fileEntries = Directory.GetFiles(@"C:\Users\John\Documents\Visual Studio 2010\Projects\ComeOn\ComeOn\bin\Debug\come");
aMethod();
index = 0;
}
private void OnTimerEvent(Object sender, ElapsedEventArgs e)
{
Bitmap LogoImg = new Bitmap(fileEntries[index]);
LogoImg.MakeTransparent(LogoImg.GetPixel(1, 1));
this.Dispatcher.Invoke(
new Action(() => image1.Source = GetBitmapSource(LogoImg)));
index++;
}
La longueur de fileEntries est de 3. J'ai créé une minuterie qui démarrera sur 3 secondes. D'abord, il exécutera image1.Source = GetBitmapSource (LogoImg) // pour fileEntries [0] pendant 3 secondes, puis pour fileEntries [1] pendant 3 secondes et à la fin fileEntries [2] pendant 3 secondes.C# minuterie comportement étrange
Mais, mon programme fait ceci:
Démarrer la minuterie, exécutez fileEntries [0], fileEntries [1] et fileEntries [2] pour 0,05 secondes, puis attendez 3 secondes, puis recommencez. Pourquoi est-ce?
Où 'index' est-il déclaré et initialisé? – ChrisF
Avez-vous essayé de définir unTimer.AutoReset = false? –
@Lucasus Oui, ça n'aide pas. –