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

时间:2019-08-14 19:22:48

标签: c++ multithreading qtconcurrent

在我的程序中,QtConcurrent Run不接受我的字符串数组或bool数组。我需要将它们转换为QByteArrays以便传递数据吗?

根据文档,此方法有效:

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-数组初始化需要用大括号括起来的初始化程序列表

1 个答案:

答案 0 :(得分:0)

切勿在QtConcurrent :: run中使用C样式数组。请改用C ++ std :: array。谢谢Jesper Juhl!