如何緩解繁忙但無回應的視窗帶來的煩惱?

如何緩解繁忙但無回應的視窗帶來的煩惱?

我在 Windows XP 中使用 Matlab 進行了大量模擬。通常,當我在另一個實例中工作時,我總是會打開一個 Matlab 來運行長時間的模擬。

有一些煩惱。如果我不小心單擊任務欄中的“工作”視窗名稱,它將永遠標記為黃色(一個小時左右),如果我不小心右鍵單擊它,則會顯示上下文功能表 - 但永遠不會消失。遮蓋其他窗戶——最煩人的。

我想知道是否有一些提示如何使這樣的上下文選單消失而不終止我的計算。

基本上它永遠看起來像這樣: 示範螢幕

到目前為止,我了解到,如果我wait(0.1)在程式碼中添加一些命令,它會阻止這種情況發生,但也會嚴重減慢我的計算速度。因此我不認為這是一個選擇。

答案1

我假設,預設情況下,Matlab 在使用者介面執行緒上運行模擬。因此,當您進行模擬時,沒有時間處理與 UI 相關的任何事情。

要解決這個問題,您必須指示 Matlab 在新執行緒上執行模擬。我在 SO 上找到了一些關於此的資訊:

谷歌上找到的資訊似乎也指向了平行計算工具箱

答案2

這基本上是 Windows 設計的副產品 - 應用程式接收「訊息」以回應 UI 事件,並由應用程式執行諸如重新繪製視窗、調整大小等操作。

Windows 將向應用程式發送適當的「訊息」以回應 UI 點擊等事件,但應用程式可以完全忽略它們,通常設計/移植不當的應用程式可能會這樣做。

設計為「感覺」互動的應用程式將 A) 在不同時刻中斷正在執行的操作以處理此類訊息,或者 B) 有一個單獨的線程來執行實際工作。我可以看到「感覺互動」並不是某些應用程式的設計優先事項,如果該應用程式實際上是運行您自己的程式的開發環境,那麼「感覺互動」的責任就會落在您身上。我使用過 Visual Studio,運行的程式會意外地創建無限循環,導致應用程式的 CPU 使用率飆升至 100%,UI 也會出現類似的情況。

我現在想不出這些程式的名稱,但是有一些程式可以讓您像許多 Linux 桌面一樣執行“多個工作區”操作。如果您可以使用此類程式將 MATLAB 實例放置在單獨的工作區中,則可能有助於防止您意外單擊它。

相關內容