我有一个我在其他地方使用的 dll 文件,但在 dll 文件中,我有一个类需要由其中的函数非常频繁地更新。然后我想创建一个循环,每次通过都执行该函数。但即便如此,它也会暂停使用 dll 的线程,因为它被困在循环中(等待它结束)。因此,我的程序冻结了。
那么,如何在不冻结线程的情况下创建此循环。
PS。我虽然尝试过使用 Timer(.net),但我真的想排除托管代码。
好吧,如果没有任何代码示例,很难给你一个准确的答案,但基本上你需要一个新的线程。创建新线程的方式取决于您/您使用的 API。你可以使用 .NET,你可以使用 Lirik 建议的 boost,WINAPI 等等。这一切都归结为:C++ 中的线程是特定于平台的(请参阅C++ 中线程的简单示例)。因此,如果没有更多关于操作系统和编译器的详细信息,一个工作代码示例实际上是不可能的。由于“执行暂停”可能只是一个无限循环,因此您可能需要考虑阅读一些关于 C++ 中的线程的材料。
如果功能已经封装在一个类中,那就太好了,因为您可以将正确启动和结束线程的责任交给类本身,而调用线程并不知道它的任何信息。