如何将字符串数组传递到 QtConcurrent::run 中?

How do you pass a string array into QtConcurrent::run?

本文关键字:QtConcurrent run 字符串 数组      更新时间:2023-10-16

在我的程序中,QtConcurrent Run不接受我的字符串数组或布尔数组。我是否需要将它们转换为 QByteArray 才能传入数据?

根据文档,这是有效的:

extern QString someFunction(const QByteArray &input);
QByteArray bytearray = ...;
QFuture<QString> future = QtConcurrent::run(someFunction, bytearray);
...
QString result = future.result();

在我的程序中,这不起作用:

extern void test(string args[]);
string args[7]={"blue"};
QFuture<void> future = QtConcurrent::run(test, args);

错误:C2075 - 数组初始化需要大括号括起来的初始值设定项列表

切勿在 QtConcurrent::run 中使用 C 样式数组。请改用C++ std::array。谢谢杰斯珀·朱尔!