在100ms延迟的另一个函数之后运行一个函数(多线程 - VB6 - excel)

时间:2012-11-15 22:04:35

标签: multithreading vb6 excel-2007

是否可以在另一个函数中运行一个函数,在单独的线程中延迟100ms。 我想创建一个函数来改变excel中的一个单元格,并通过Visual Basic 6中的一个单独的线程延迟100ms运行另一个函数 TNX

4 个答案:

答案 0 :(得分:1)

您可以使用API​​

在您的退休部分添加以下内容:

私有声明Sub Sleep Lib“kernel32.dll”(ByVal dwMilliseconds As Long)

使用它:

睡眠100'睡眠0.1秒

答案 1 :(得分:0)

可以通过创建ActiveX exe来实现。请参阅wqw的答案To use thread in programming in vb6。 100ms秒延迟将是~100ms延迟。根据您希望延迟的精确度,您可以使用精确到10ms的本地VB计时器,或者对于更高的分辨率,您可以使用多媒体计时器(使其难以调试),或获得实现高分辨率计时器。

答案 2 :(得分:0)

可以使用ActiveX exes在VB6中进行多线程处理。这些是“进程外”,因此可以加载并立即返回。自从我做了这么多年以来,我想我可能已经使用了一个计时器来加载课程并立即返回,然后让课程在其过程中继续工作。

这种做法虽然很糟糕 - 以任何合理的方式管理它都是一场噩梦。

更好的选择是在VB.Net中编写你想要的东西(你应该在我认为的Express版本中做到这一点),并将程序集设置为与COM兼容。然后,您可以在VBA或其他任何内容中引用此功能。

答案 3 :(得分:0)

ActiveX DLL实例也可以在自己的线程上运行,但只能在一个进程中运行。因此,您不需要进程间通信的额外开销。当然,Excel无论如何都会在一个单独的进程中运行。