Снова обращаюсь к Вам за помощью. Так как наши знаменитые поисковики, опять запутали и без того мою не сильно "Умную голову"
Я учу PyQt6 по книге "Python 3 и PyQt6 разработка приложений", и остановился на теме "Блокировки в Theard". Написав листингe который находиться ниже
у меня не может определить Class который называется MyTheard() скриншот находиться ниже :
из-за этого выходит ошибка "Process finished with exit code -1073740791 (0xC0000409)"
Пожайлуйста подскажите что я неправильно сделал..... Вроде делал всё как сказано в книге. Но все бесщетно...
Я учу PyQt6 по книге "Python 3 и PyQt6 разработка приложений", и остановился на теме "Блокировки в Theard". Написав листингe который находиться ниже
Код:
from PyQt6 import QtCore, QtWidgets
class MyThread(QtCore.QThread):
x = 10 # Атрибут класса
mutex = QtCore.QMutex() # Блокировщик
def __init__(self, id, parent=None):
QtCore.QThread.__init__(self, parent)
self.id = id
def run(self):
self.change_x()
def change_x(self):
MyThread.mutex.lock() # Блокируем
print("x = ", MyThread.x, "id = ", self.id)
MyThread.x += 5
self.sleep(2)
print("x = ", MyThread.x, "id = ", self.id)
MyThread += 34
print("x = ", MyThread.x, "id = ", self.id)
MyThread.mutex.unlock()
class MyWindow(QtWidgets.QPushButton):
def __init__(self):
QtWidgets.QPushButton.__init__(self)
self.setText("Запустить")
self.thread1 = MyThread(1)
self.thread2 = MyThread(2)
self.clicked.connect(self.on_start)
def on_start(self):
if not self.thread1.isRunning():self.thread1.start()
if not self.thread2.isRunning():self.thread2.start()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle("Использование блокировки")
window.show()
sys.exit(app.exec())
из-за этого выходит ошибка "Process finished with exit code -1073740791 (0xC0000409)"
Пожайлуйста подскажите что я неправильно сделал..... Вроде делал всё как сказано в книге. Но все бесщетно...