C# 当某个窗体可见时,重复运行代码

C# 当某个窗体可见时,重复运行代码,c#,animation,picturebox,C#,Animation,Picturebox,我希望在窗体可见时,每隔x毫秒运行一次特定的方法(以便更改该窗体中picturebox的内容,准确地说,这样可以显示动画),而不会明显阻止事件。我无法加载.gif,因为我将使用精灵表和atlas文件。我相信这种方法超越了.net/c附带的事件驱动编程语言范式。我不确定解决这个问题的正确方法-可能使用线程,但这听起来有点过分-有什么建议吗?您可以使用定时触发事件。至于只在窗体可见时执行此操作,您可以在窗体最小化或隐藏时禁用计时器,并在再次显示时重新启用它。“我认为这种方法超出了.net/c#附带的

我希望在窗体可见时,每隔x毫秒运行一次特定的方法(以便更改该窗体中picturebox的内容,准确地说,这样可以显示动画),而不会明显阻止事件。我无法加载.gif,因为我将使用精灵表和atlas文件。我相信这种方法超越了.net/c附带的事件驱动编程语言范式。我不确定解决这个问题的正确方法-可能使用线程,但这听起来有点过分-有什么建议吗?

您可以使用定时触发事件。至于只在窗体可见时执行此操作,您可以在窗体最小化或隐藏时禁用计时器,并在再次显示时重新启用它。

“我认为这种方法超出了.net/c#附带的事件驱动编程语言范例”,尤其是在使用具有回调事件的计时器的情况下。根据以毫秒为单位的X,您可能会有一个不稳定的动画,因为计时器不是精确事件(由其他操作系统任务和线程预先设置)。