Использовать 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);

Но панель2 не будет анимирована, пока панель1 не закончит анимацию.

Я должен использовать потоки.. но я не могу, даже если я использовал invoke .. также он запускает 2-ю анимацию после 1-го

так как я могу это сделать?

1 ответ

Если вы хотите анимировать 2 windws одновременно, я думаю, вам придется использовать некоторые потоки. Но поскольку вы говорите, что уже использовали его - я думаю, что ваши потоки не синхронизированы, вы просто, вероятно, используете два потока без их синхронизации. объявите метод, вызывающий animatewindow, как синхронизированный, и он должен работать.

благодарю вас.!!

Другие вопросы по тегам