Nếu tôi hiểu đoạn mã sau từ tài liệu QFutureWatcher một cách chính xác, sau đó là một điều kiện chủng tộc giữa người cuối cùng dòng:Làm thế nào tôi có thể sử dụng một QFutureWatcher với QtConcurrent :: run() mà không có một điều kiện chủng tộc
// Instantiate the objects and connect to the finished signal.
MyClass myObject;
QFutureWatcher<int> watcher;
connect(&watcher, SIGNAL(finished()), &myObject, SLOT(handleFinished()));
// Start the computation.
QFuture<int> future = QtConcurrent::run(...);
watcher.setFuture(future);
Nếu chức năng ...
trong kết thúc QtConcurrent::run(...)
trước khi dòng kế tiếp được gọi, thì tín hiệu watcher.finished()
sẽ không bao giờ được kích hoạt. Giả định của tôi có đúng không? Làm cách nào để khắc phục lỗi này?