參考:
https://doc-snapshots.qt.io/qt6-dev/qtconcurrenttask.html
https://doc-snapshots.qt.io/qt6-dev/concurrent-changes-qt6.html
https://doc-snapshots.qt.io/qt6-dev/qtconcurrent-index.html
QtConcurrent::QTaskBuilder task1 = QtConcurrent::task([]{ qDebug("0 Hello, world!"); });
auto future1 = task1.spawn();
future1.waitForFinished();
//auto result = future.result(); // result == 42
// 函數有輸入參數
QtConcurrent::QTaskBuilder task2 =
QtConcurrent::task([](const QString &s){ qDebug() << ("1 Hello, " + s); });
auto future2 = task2.withArguments("world!").spawn();
future2.waitForFinished();