在新线程中使用AnimateWindow

时间:2012-05-26 22:09:05

标签: c# multithreading animatewindow

如何同时为两个窗口设置动画?我试过了:

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern bool AnimateWindow(IntPtr hwnd, int time, int flags);
    ...

    AnimateWindow(panel1.Handle, speed, AW_SLIDE | AW_HOR_Top);
    AnimateWindow(panel2.Handle, speed, AW_SLIDE | AW_HOR_Top);

但是在panel1完成动画之前,panel2不会动画。

我必须使用线程..但即使我使用了调用我也不能..它也会在第一个之后运行第二个动画

所以我该怎么做?

1 个答案:

答案 0 :(得分:-1)

如果你想同时为2个windws制作动画,那么你将不得不使用我认为的一些线程。但正如你所说你已经使用它 - 我认为你的线程没有同步,你可能只是使用两个线程而不同步它们。将调用animatewindow的方法声明为synchronized并且必须有效。

谢谢。!!