不暂停执行的C ++循环

时间:2012-08-06 20:01:55

标签: c++ dll

我有一个我在其他地方使用过的dll文件,但在dll文件中,我有一个类需要通过其中的函数非常频繁地更新。然后我想创建一个循环来执行每次传递的函数。但即便如此,它会暂停使用dll的线程,因为它被捕获在循环中(等待它结束)。因此,我的程序冻结了。

那么,如何在不冻结线程的情况下创建此循环。

PS。我虽然并尝试使用Timer(.net),但我真的想要排除托管代码。

1 个答案:

答案 0 :(得分:0)

没有任何代码示例,给你一个确切的答案并不容易,但基本上你需要一个新的线程。创建新线程的方式取决于您/您正在使用的API。你可以使用.NET,你可以使用boost,就像Lirik建议的那样,WINAPI,无论如何。这一切都归结为:C ++中的线程是特定于平台的(参见Simple example of threading in C++)。因此,如果没有关于操作系统和编译器的更多细节,那么工作代码示例将无法实现。由于“执行暂停”可能只是一个无限循环,您可能需要考虑在C ++中读取一些关于线程的材料。

如果功能已经封装在一个类中,那就太好了,因为你可以将线程正确地开始和结束到类本身,而不需要调用线程知道它的任何内容。