1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-18 23:43:02 +08:00

fix(ALMainWindow): fix the clean up issue of worker thread and config window (concernd commit #389ac88)

This commit is contained in:
2025-11-22 14:11:22 +08:00
parent 15ea47dd07
commit 1038a86aff
+10 -3
View File
@@ -80,6 +80,7 @@ class AutoLibWorker(QThread):
self self
): ):
auto_lib = None
try: try:
if not self.checkTimeAvailable(): if not self.checkTimeAvailable():
self.showTraceSignal.emit( self.showTraceSignal.emit(
@@ -98,13 +99,14 @@ class AutoLibWorker(QThread):
ConfigReader(self.__config_paths["system"]), ConfigReader(self.__config_paths["system"]),
ConfigReader(self.__config_paths["users"]), ConfigReader(self.__config_paths["users"]),
) )
auto_lib.close()
self.showTraceSignal.emit("AutoLibrary 运行结束")
except Exception as e: except Exception as e:
self.showTraceSignal.emit( self.showTraceSignal.emit(
f"AutoLibrary 运行时发生异常 : {e}" f"AutoLibrary 运行时发生异常 : {e}"
) )
finally: finally:
if auto_lib:
auto_lib.close()
self.showTraceSignal.emit("AutoLibrary 运行结束")
self.finishedSignal.emit() self.finishedSignal.emit()
@@ -242,6 +244,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
config_paths: dict config_paths: dict
): ):
if self.__alConfigWidget:
self.__alConfigWidget.configWidgetCloseSingal.disconnect(self.onConfigWidgetClosed) self.__alConfigWidget.configWidgetCloseSingal.disconnect(self.onConfigWidgetClosed)
self.__alConfigWidget.deleteLater() self.__alConfigWidget.deleteLater()
self.__alConfigWidget = None self.__alConfigWidget = None
@@ -274,6 +277,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
): ):
self.setControlButtons(False, False, True) self.setControlButtons(False, False, True)
if self.__auto_lib_thread is None:
self.__auto_lib_thread = AutoLibWorker( self.__auto_lib_thread = AutoLibWorker(
self.__input_queue, self.__input_queue,
self.__output_queue, self.__output_queue,
@@ -289,13 +293,16 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
self self
): ):
if self.__auto_lib_thread and self.__auto_lib_thread.isRunning(): if self.__auto_lib_thread:
self.showTrace("正在停止操作......") self.showTrace("正在停止操作......")
self.__auto_lib_thread.stop() self.__auto_lib_thread.stop()
self.__auto_lib_thread.wait() self.__auto_lib_thread.wait()
self.showTrace("操作已停止") self.showTrace("操作已停止")
self.__auto_lib_thread.showMsgSignal.disconnect(self.showMsg)
self.__auto_lib_thread.showTraceSignal.disconnect(self.showTrace)
self.__auto_lib_thread.finishedSignal.disconnect(self.onStopButtonClicked) self.__auto_lib_thread.finishedSignal.disconnect(self.onStopButtonClicked)
self.__auto_lib_thread.deleteLater() self.__auto_lib_thread.deleteLater()
self.__auto_lib_thread = None
self.setControlButtons(True, True, False) self.setControlButtons(True, True, False)
@Slot() @Slot()