我是新來的Visual Studio和C#。剛剛完成了Windows窗體應用程序,但發現了以下錯誤。每當用戶最小化/恢復它或切換到另一個任務時,程序就會消失(顯示「不響應」)。這個bug可以防止用戶在運行這個程序時的多任務處理,所以我真的想修復if。 我想知道這個問題的可能原因是什麼,以及如何解決它們。我真的很感激任何建議。謝謝!無法爲Windows窗體應用程序切換任務
回答
這可能是因爲您在Form
中有長時間運行循環或長時間運行的操作。當您最小化和恢復時,只看到「未響應」的事實可能是由於您已強制窗口重新繪製並強制Windows識別該應用程序已掛起並使用虛幻窗口。在最小化和恢復之前,窗口可能已經掛起。您可以通過嘗試移動窗口來驗證這一點。如果它不動,就會掛起。如果它確實移動了,請嘗試將標題欄移出屏幕並返回(例如,在標題欄中間單擊並將它一直拖到右側並釋放該按鈕,然後執行相同操作並將其重新顯示在屏幕上)。
當我試圖移動窗口時,程序掛起。如果你不試圖移動或最小化程序,它就會正常工作。我同意你的觀點,可能是由於運行一個巨大的循環造成的。但是該程序必須首先迭代100k +行文件。任何可能的原因除了循環關注? – andyzhangcr7 2012-08-14 19:03:41
它似乎工作正常,窗戶仍然掛着。如果您切換到另一個應用程序並返回,則會出現類似的「無響應」問題。它可能是一個循環或其他一些冗長的操作,沒有看到代碼中有無數的猜測。解決這個問題的唯一方法是找到冗長的操作並將其從UI線程移到另一個線程。 BackgroundWorker對此很有用。 – 2012-08-14 19:06:27
對不起,我不能發佈此項目的代碼,但無論如何感謝 – andyzhangcr7 2012-08-14 19:17:16
如果我沒有錯,你正在運行一個UI凍結的問題。如果是這樣,你爲什麼不使用C#BackgroundWorker。它可以幫助您防止凍結窗口窗體,無論您是否執行長期任務。你可以在這裏找到一個很好的教程http://www.dotnetperls.com/backgroundworker。希望這會有所幫助。
- 1. 隱藏Windows窗體(任務欄,任務切換等)
- 2. Windows窗體應用程序 - MySQL - 無法從'字符串'轉換
- 3. 如何將Windows窗體應用程序轉換爲Windows商店應用程序?
- 4. Windows窗體應用程序
- 5. 從Windows窗體切換到Web窗體
- 6. C#Windows窗體切換
- 7. 添加應用程序配置爲Windows窗體應用程序
- 8. 無法使用C#Windows窗體應用程序刪除文件
- 9. Windows爲我的應用程序顯示「結束任務窗口」
- 10. Windows窗體應用程序轉換爲.Net Framework 4.0至2.0
- 11. 將Windows窗體應用程序轉換爲Asp.net
- 12. 如何將Windows窗體應用程序從C#轉換爲VB?
- 13. Windows窗體應用程序作爲服務
- 14. Windows窗體應用程序無法正常關閉
- 15. 無法訪問Windows窗體應用程序中的ConfigurationManager.AppSettings
- 16. Windows窗體應用程序無法訪問DVD-Rom資源
- 17. 無法在其他PC上運行Windows窗體應用程序
- 18. 使用Windows服務從Windows窗體應用程序
- 19. 如何獲得選擇的任何應用程序的文本轉換爲Windows窗體應用程序
- 20. VC++ Windows窗體切換回父窗口
- 21. 無法從Windows服務應用程序
- 22. 如何查看Windows窗體應用程序在Windows服務應用程序作爲服務運行
- 23. Windows窗體應用程序中的Windows服務
- 24. 運行Windows窗體應用程序從Windows服務
- 25. Windows窗體應用程序在Windows託管服務上運行
- 26. Windows服務與Windows窗體應用程序VB.NET
- 27. 從Windows窗體應用程序創建Windows服務
- 28. Windows窗體應用程序保存爲.txt方法
- 29. 使用C#Windows窗體應用程序
- 30. Windows窗體應用程序使用HTML
聽起來像你可能正在做的事情在Control.LostFocus事件處理程序鎖定GUI。在您的代碼中可以發佈的任何類似內容? – 2012-08-14 18:03:19
我沒有任何有關Control.LostFocus事件處理程序的代碼。該程序有近2000行,我不認爲發佈一小部分代碼會有所幫助。正如彼得在下面所說的,我認爲巨環是迄今爲止的主要原因。 – andyzhangcr7 2012-08-14 18:59:39