private void Timer_Elapsed(object sender, ElapsedEventArgs e) { // System.Diagnostics.Trace.WriteLine("tick..."); if (!IsSwitching) { IsSwitching = true; Task.Run(() => { try { Dispatcher.Invoke(() => { Image = nextImage; }); nextImage = HpaClient.getRandImageTask().Result; } catch (Exception ex) { MessageBox.Show("Exception: " + ex.ToString()); } finally { IsSwitching = false; } }); } }
public void StartShow() { timer = new Timer(); timer.Interval = 10000; timer.AutoReset = true; timer.Elapsed += Timer_Elapsed; timer.Start(); IsSwitching = true; try { Image = HpaClient.getRandImageTask().Result; nextImage = HpaClient.getRandImageTask().Result; } catch (Exception ex) { MessageBox.Show("first init exception: " + ex.ToString()); } finally { IsSwitching = false; } }