我是在VB 2008中开发的应用程序,并使用后台工作者复制文件。我有自己的设计表格,该表格与副本一起在表单顶部扮演动画片。要使用“ AxmsComctl2.axanimation”播放动画,我会得到

“ ActiveX Control''无法实例化,因为当前线不在单线读取公寓中。”

在搜索中,我找到了一个链接:论坛链接

但是仍然在此链接中,首先我不明白在哪里插入该片段,其次是如何在背景工作者上实现这个想法。

请指导我在这方面。

感谢和问候,

小牛。

有帮助吗?

解决方案

您需要使用委托并让主线程实际控制动画。您是从背景线程中调用代表,但在主线程中运行。第二篇文章有一个粗略的想法:http://www.vbforums.com/showthread.php?t=377205

其他提示

您不能使用背景工作者对此控件进行动画动画。它是一个ActiveX控件,要求您在应用程序的主线程中创建它。创建表单的相同线程。

这是对控件的一个非常普遍的限制,它们不支持螺纹。

链接线程无法解决您的问题。是的,您可以通过调用setapartmentState()并指定sta来创建自己的sta线程,但是现在您无法使用在主线程上创建的表单做任何事情。将控件添加到表单中时,您将获得异常。形式的子控制器必须与表单相同的线程创建。

通常,这应该不是问题。只要您将表格的活动处理程序简短而活泼,动画就应该是相当平稳的。如果这样的事件处理程序需要做需要一段时间的事情(并因此冻结动画),那么让BGW执行该作业。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top