gpt4 book ai didi

c++ - Qt Concurrent 或 std::async 用于新代码?

转载 作者:可可西里 更新时间:2023-11-01 18:27:19 32 4
gpt4 key购买 nike

我正在考虑运行异步代码的两个选项:Qt Concurrentstd::async .鉴于我正在使用 Qt 编写 GUI 应用程序,因此使用 Qt Concurrent 是有意义的。然而 std::async 看起来也不错,并且得到了所有主要编译器的支持。

我应该为新代码使用 Qt Concurrent 还是 std::async?比较两者时我还应该寻找什么?

最佳答案

Given that I'm writing a GUI app with Qt, it makes sense to go with Qt Concurrent

我想说,事情没那么简单。我个人会尽可能多地使用标准库。但是,需要考虑一些限制条件:

Do you need to support your software on platforms not supporting at least C++11?

如果问题是肯定的,那么在基于 Qt 的软件中使用 Qt 解决方案是更好的选择。话虽这么说,即使如此,您也可以根据需要使用不同的 Qt 解决方案。一个是来自 KDE 的线程编织器,但现在让我们不要走那么远......

另一个问题,您可以问自己:

Do you already have an existing code base where that is used throughout?

根据答案,这还可以为决策提供更多方面,无论您更喜欢一致性还是前瞻性思维。

这里还有一个问题要问:

How much of QtConcurrent do I need?

根据确切的答案,它可能是也可能不是更好的选择。请注意,并非 QtConcurrent 的所有功能都在标准库中,例如像 QFutureWatcher 和 Qt 信号槽机制。

所以,是的,作为 Qt 用户,我会建议尽可能多地使用标准库。如今,Qt 甚至明确依赖于它们,因此不会在不支持它的平台上运行。此外,在 Qt Project 中,总体方向似乎是这样。例如,QtAlgorithms 中的很多东西都已过时,但这只是其中之一。

关于c++ - Qt Concurrent 或 std::async 用于新代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23194163/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com