Я предполагаю, что вы хотите защитить свой поток от вызовов из другого потока.Я прав?Если да, то ..
Это то, для чего предназначен QMutex.QMutex предоставляет вам интерфейс для «блокировки» потока, пока он не будет «разблокирован», тем самым сериализовав доступ к потоку.Вы можете разблокировать поток, пока он не выполнит свою работу.Но используйте его на свой страх и риск.QMutex представляет свои проблемы при неправильном использовании.Обратитесь к документации для получения дополнительной информации по этому вопросу.
Но есть много других способов решения вашей проблемы, например, @Beached предлагает более простой способ решения проблемы;ваш экземпляр QThread издаст сигнал, если это будет сделано.Или, что еще лучше, создайте bool isDone
внутри вашей темы, которая будет true
, если это будет сделано, или false
, если это не так.Если когда-либо это true
, тогда безопасно вызывать метод.Но убедитесь, что вы не манипулируете isDone
вне потока, которому он принадлежит.Я предлагаю вам манипулировать только isDone
внутри вашего QThread.
Вот документация класса: ссылка
LOL, я серьезно неверно истолковал ваш вопрос.Сожалею.Похоже, вы уже сделали мое второе предложение с bWorking
.