我對Windows窗體很陌生。我創建的Windows窗體應用程序是執行非常耗時的數據轉換任務的組件的前端。數據轉換任務發出表單訂閱的事件。窗體窗體 - 當一個耗時的操作發生時窗體會凍結
當表單接收到事件時,它會更改標籤中的文本併爲該標籤調用Refresh()
。
當我從窗體運行該過程時,它會保持響應並更新標籤文本大概一分鐘左右。之後,它會凍結,Windows會聲明進程「無響應」,直到數據轉換完成,此時表單解凍並且標籤顯示數據轉換已完成(如預期的那樣)。
我還沒有把數據轉換到一個單獨的線程 - 這是我應該嘗試的第一件事?事件是否可以跨線程?如果不是,我該怎麼辦?
你可以顯示你的一些代碼..?這是你可能使用線程的東西..? – MethodMan
哪個版本的.NET?較新的版本有可用於線程的其他選項。無論如何,是的,線程是你的第一選擇。看到這個帖子的想法。 http://stackoverflow.com/questions/464338/multithreading-libraries-for-net – David
.NET 4.我看不出爲什麼工作不能在另一個線程上完成。它從文本文件讀取數據,將其轉換並寫入其他文本文件。 – David