メソッドが5秒で完了するのを待ってから、別の呼び出しを開始する方法が必要です。最初に「Hello」を表示してから5秒間待ち、次に「World」を表示してさらに5秒間待って、両方のメッセージを再度表示するようなものでした。DispatcherTimerメソッドを作成しましたが、5秒待つ間に両方のテキストが高速に表示されます。
private void AutoAnimationTrigger(Action action, TimeSpan delay)
{
timer2 = new DispatcherTimer();
timer2.Interval = delay;
timer2.Tag = action;
timer2.Tick += timer2_Tick;
timer2.Start();
}
private void timer2_Tick(object sender, EventArgs e)
{
timer2 = (DispatcherTimer)sender;
Action action = (Action)timer2.Tag;
action.Invoke();
timer2.Stop();
}
if (counter == 0)
{
AutoAnimationTrigger(new Action(delegate { MessageBox.Show("Hello"); }), TimeSpan.FromMilliseconds(5000));
AutoAnimationTrigger(new Action(delegate { MessageBox.Show("World"); }), TimeSpan.FromMilliseconds(5000));
}
私は何を見逃したり、間違ったことをしましたか?
編集___
ThreadPool.QueueUserWorkItem(delegate
{
//Thread.Sleep(5000);
Dispatcher.Invoke(new Action(() =>
{
TranslateX(4);
TranslateY(-0.5);
}), DispatcherPriority.Normal);
//Dispatcher.BeginInvoke(new Action(() =>
//{
// TranslateY(0.5);
//}), DispatcherPriority.Normal);
});
次に、メソッドを呼び出すだけです。