Software Project I am currently working on을 참조하십시오.WPF : 타이머가있는 스레드에서 큐 구성
나는 기본적으로 타이머와 캔버스를 이동하려면 아래의 방법이 있습니다
DispatcherTimer dt = new DispatcherTimer(); //global
public void Ahead(int pix)
{
var movx = 0;
var movy = 0;
dt.Interval = TimeSpan.FromMilliseconds(5);
dt.Tick += new EventHandler((object sender, EventArgs e) =>
{
if (movx >= pix || movy >= pix)
{
dt.Stop();
return;
}
Bot.Body.RenderTransform = new TranslateTransform(movx++, movy++);
});
dt.Start();
}
public void TurnLeft(double deg)
{
var currAngle = 0;
dt.Interval = TimeSpan.FromMilliseconds(5);
dt.Tick += new EventHandler(delegate(object sender, EventArgs e)
{
if (currAngle <= (deg - (deg * 2)))
{
dt.Stop();
}
Bot.Body.RenderTransform = new RotateTransform(currAngle--, BodyCenter.X, BodyCenter.Y);
});
dt.Start();
}
을 이제 다른 라이브러리를,이 방법은 같은처럼라고 : 물론 지금
public void run()
{
Ahead(200);
TurnLeft(90);
}
, 나는 이 애니메이션을 다른 애니메이션이 발생하게하고 싶지만 두 번째 메서드 (이 경우 TurnLeft(90)
)가 호출 될 때 DispatchTimer
의 dt.Tick
이벤트 처리기가 덮어 쓰여지고 있으므로 두 번째 metho d는 필요한대로 실행됩니다.
나는 어떤 종류의 큐를 만들어서 큐에 넣고 푸시 할 수 있도록해야한다. 따라서 dt
(DispatchTimer
타이머)이 하나씩 큐를 실행한다. 큐에있는 순서대로
나는 이것을 어떻게 할 수 있습니까? 여기 오른쪽 궤도에 있습니까, 아니면 완전히 벗어 났습니까?
시퀀서! 좋아, 고마워! – discorax