Описание тега qmutex
Класс QMutex, часть инфраструктуры Qt, обеспечивает сериализацию доступа между потоками.
2
ответа
QMutex: уничтожение заблокированного мьютекса
Учитывая следующий код: #include <chrono> #include <ctime> #include <functional> #include <iostream> #include <thread> #include <utility> #include <QFuture> #include <QMutex> #include <QWaitConditio…
20 фев '19 в 02:43
2
ответа
Pixmap разделяется между потоками в Qt
У меня есть основной класс GUI и другой класс Worker: первый справляется с вещами GUI (рисует QPixmap в QGraphicsScene), вторая с вычислениями вещь (рисунок QLineс и QPointна это QPixmap). The two classes run in two different threads. Когда я создаю…
24 ноя '15 в 21:39
1
ответ
QMutex с QConcurrent::run не работает должным образом?
Я делаю приложение Qt GUI, которое использует пользовательский QLabel класс (имя как ImageInteraction) показывать изображения с потоковой камеры, а также разрешать взаимодействие мыши с изображением. Поскольку у GUI есть другие функции, настроенный …
11 фев '16 в 15:50
2
ответа
QMutex блокирует в одном потоке и разблокирует в другом потоке
Могу ли я использовать QMutex странным образом: заблокировать QMutex в одном потоке, а затем разблокировать в другом?
10 сен '13 в 19:52
3
ответа
Обработка с критическими разделами в Qt
Я много искал ответа на этот вопрос, но, похоже, его нет. Я использую Qt 5.2.0 для создания TCP-клиента с winsocks2. Используемый язык - C++. Чтобы сделать цикл соединения (где я вызываю send() и write()), я использую QThread (это можно прочитать зд…
16 мар '14 в 00:12
1
ответ
Использование QMutexLocker для защиты общих переменных при запуске функции с QtConcurrent
Я делаю процесс обнаружения в фоновом потоке, используя QtConcurrent: // Start the discover process in the background thread so it doesn't block the gui *m_Future = QtConcurrent::run(this, &Controller::StartDiscover); m_Watcher->setFuture(*m_…
14 ноя '13 в 15:07
1
ответ
Использование данных, совместно используемых несколькими потоками в QAbstractTableModel
У меня есть одноэлементный класс, реализованный с использованием Q_GLOBAL_STATIC который содержит структуру данных, доступ к которой должен быть из нескольких потоков, я реализовал функции доступа в классе, которые блокировали бы мьютекс перед досту…
02 янв '16 в 05:17
1
ответ
"Попытка ссылки на удаленную функцию" после добавления QMutex в класс
Я строю приложение с Qt5. Моя программа собирается и работает нормально, но есть конфликт между двумя потоками, обращающимися к структуре данных. У меня есть QList объектов CanMessage, и я хочу защитить некоторые данные внутри него, используя QMutex…
27 июн '18 в 00:55
1
ответ
QMutex с QThread - ошибка сегментации
У меня есть программа C++ Qt, которая использует QThread с механизмом паузы / возобновления, реализованным с использованием QMutex и QWaitCondition. Вот как это выглядит: MyThread.h: class MyThread : public QThread { Q_OBJECT public: MyThread(); voi…
17 май '13 в 15:22
1
ответ
Совместим ли threading.Lock() с QThread() и QMutex() совместим с потоками Python?
Я использую Python 3.7 (с PyQt5 для GUI) на компьютере с Windows 10. Мое приложение нуждается в многопоточности. Для этого я использую QThread(), Мне нужно защитить некоторый код с помощью мьютекса. Я подумал, что у меня есть следующие два варианта:…
23 дек '18 в 17:04
2
ответа
В Qt, как я могу запросить состояние QMutex или QReadWriteLock?
Я использую QReadWriteLock в своем приложении для защиты доступа к объекту ресурса. Я использую QReadLocks и QWriteLocks, где могу, но иногда мне нужен "долговечный" замок, который пересекает границы функций. Поэтому иногда мне нужно иметь возможнос…
21 фев '10 в 15:59
1
ответ
Дочерний графический интерфейс не отображается при использовании условия ожидания в родительском pyqt
Я новичок в кодировании PyQt. Я пытаюсь запустить дочерний процесс (GUI) от родителя. В этом я использую waitcondition и mutex, чтобы понять его функциональность. Вот мой код: import sys from PyQt4 import QtGui, QtCore waitCondition = QtCore.QWaitCo…
17 фев '16 в 13:33
1
ответ
Может ли функция блокировки мьютекса быть помечена как const?
У меня есть потокобезопасный Document класс, представляющий пользовательский документ. У него есть геттеры (функции const) и сеттеры для изменения его состояния. Все эти функции защищены мьютексом, чтобы гарантировать, что документ не будет изменен,…
27 авг '14 в 07:45
1
ответ
Qt, Как заблокировать базу данных SQLite для нескольких операций
У меня есть приложение QML, с которым взаимодействует пользователь. Есть таймер, который прослушивает сервер на предмет рабочего порядка, а затем вставляет всю информацию в базу данных SQLite в приложении. Также пользователь может вносить изменения …
23 май '16 в 08:51
1
ответ
Тайм-аут QTimer и взаимодействие QMutex
Допустим, у нас есть некоторый базовый таймер и слот, который периодически вызывается. SomeObject::SomeObject() { QTimer *timer = new QTimer; connect(timer , SIGNAL(timeout()), this, SLOT(updateState())); } void SomeObject::updateState() { // some o…
17 июл '17 в 15:04
2
ответа
Дождитесь завершения слота buttonPressed() перед выполнением buttonReleased()
У меня есть QPushButton, который выполняет длительные действия на pressed() а также released() сигналы. Как я могу убедиться, что я выполнил все действия buttonPressed() слот, прежде чем выполнять те из buttonReleased() слот? Я пытался с QMutex, но …
23 май '16 в 05:43
1
ответ
Сбой при создании QMutexLocker из дочернего QThread
У меня есть QMutex и QQueue в качестве члена в классе, основанном на QThread. Я блокирую QMutex (от QMutexLocker) в методах popEvent и pushEvent. Когда я блокирую его в методе push, вызванном из основного потока, он работает. Когда я вызываю функцию…
01 мар '18 в 11:07
3
ответа
QThread состояние, когда при запуске () вызов потока все еще работает, но после уже не
У меня есть поток GUI, где я звоню write(QString text) метод другого MyQThread, MyQthread содержит QMutex mutex а также QList<QString> list, Здесь write() а также run() методы MyQThread: void MyQThread::write(QString text) { mutex.lock(); list…
16 авг '13 в 15:04
0
ответов
Общая переменная Qt делает поток безопасным
Мне нужно получить доступ к статической переменной из другого потока. Ниже приведен код. settings.h class settings { public: settings(); static QList<int> settings::list; } settings.cpp #include "settings.h" QList<int> settings::list; se…
20 июл '18 в 17:22
0
ответов
Невозможно получить блокировку на QMutex
Приложение, над которым я сейчас работаю, является многопоточным, с несколькими ресурсами, которые распределяются между потоками. Я использую QMutexes для защиты общих ресурсов, хотя на практике конфликт между разными потоками, пытающимися заблокиро…
05 мар '15 в 01:37