我有一個用PySide編寫的Qt應用程序(Qt Python綁定)。這個應用程序有一個GUI線程和許多不同的QThreads負責執行一些繁重的任務 - 一些相當長的任務。由於這種長時間的任務有時會受阻(通常是因爲它正在等待服務器響應),因此應用程序有時會凍結。在設定的時間間隔內調用QCoreApplications.processEvents()是否安全?
因此,我想知道是否可以每隔一秒左右手動調用QCoreApplication.processEvents()
以便GUI事件隊列被清除(處理)?這是一個好主意嗎?
爲什麼主線程凍結,如果所有工作都是由其他線程完成的? – wRAR 2013-02-22 00:40:22
這是一個很好的問題,我沒有很好的答案。我曾經問過Qt論壇,他們說這是因爲應用程序沒有處理任何事件,這就是爲什麼它看起來被凍結。可能還有一些事實,即有100多個線程同時運行。 – 2013-02-22 00:45:56
如果主線程在Qt事件循環中,它應該處理消息(除非您的機器太忙,但與您的代碼沒有直接關係)。 – wRAR 2013-02-22 00:51:22