Описание тега 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 который содержит структуру данных, доступ к которой должен быть из нескольких потоков, я реализовал функции доступа в классе, которые блокировали бы мьютекс перед досту…
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