продолжить его выполнение?
А что значит снаружи?
никак. можно processEvent из слота покрутить, но это на крайний случай
Ну как я представляю. У нас есть система сигнал-слот, в ней кооперативная многозадачность. И я хочу не блокироваться в слоте, а передать управление. А потом передам управление назад
корутины в С++ только добавили) возможно через года 3 будет их поддержка в Qt
А boost.fiber тут подойдёт?
Я с многопоточностью не работал, но когда-то нужно было на время и при определенных условиях прекратить работу сигнала/слота, я просто disconnect сделал, а потом снова включил
тут подойдет разделение 1-го слота на 2 слота
вроде не совсем то. он хочет посередине слота приостановить работу. штатными средствами qt вроде никак, если только делить слот на два как предложили
Тогда да, согласен
не, можно посреди слота processEvents покрутить
Не понял, как подойдёт? У меня ж слот заблокирует весь тред
что у тебя в слоте такого?
Запрос к субд. И я хочу по клику отменить
блокировать слот не стоит если он в основном потоке. а вообще ты наверное можешь просто создать отдельный поток и приостанавливать его
запрос через что делаешь?
Да я не хочу целый поток делать, мне надо всего-навсего опрашивать состояние. Проблема в том, что у меня при этом qprogressdialog виснет
сам себе злобный буратино. чем Qt не подошел?
если у тебя там операция которая надолго блокирует основной поток, то ui будет на это время подвисать, тут имхо правильно выносить это в отдельный поток и можно нормально общаться через сигнал-слот
Есть причины...
Да через тред я сделал, но хотелось бы без этого обойтись. Файберы из буста тут можно приспособить?
тогда гугли libpq poll events
Обсуждают сегодня