C++中的多线程while循环

我已经开始使用 c++(来自 ac# 背景),并且在我的程序中我需要运行一个 while true 循环,但是由于它是一个 imgui 程序,ui 完全冻结,因为我Sleep()在循环中使用。我需要创建一个新线程,但我在网上找到的所有内容都只是

std::thread nThread(Method);
nThread.join();

现在,问题在于它根本不起作用,因为我假设这是一个始终在运行的 while 循环。我想在 C# 中做 C++ 等效的Thread thread = new Thread(method)thread.Start();。如果有人可以帮助我,我将不胜感激。

回答

t.join() 等待线程t死亡。如果您不希望启动线程的方法等待它,那就不要join()它。

但请注意!如果您允许在线程仍在运行时销毁线程对象,C++ 库会生您的气。(析构函数会抛出异常。)如果你想告诉库,“闭嘴!我知道我在做什么”,你可以从对象中分离线程。但通常情况下,如果您可以安排对象在需要线程运行时一直存活,那么它的设计会更简洁。


以上是C++中的多线程while循环的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>