簡體   English   中英

C#窗口在繁忙時變為空白->進度欄? 但是如何?

[英]C# Window gets blank when busy -> Progressbar? But how?

我有一個程序執行一些復制作業(通過File.Copy),該作業可能持續幾分鍾。 當用戶此時將另一個窗口置於前景時,程序窗口將變為空白,因為它不會重新繪制自身。

現在,我想在屏幕中心的另一個窗口中顯示一個ProgressBar,但是該窗口也為空白。

因此,我在另一個沒有幫助的線程中啟動了它。

我很確定有人以前這樣做過,但是我找不到有效的例子。 有任何想法嗎?

BackgroundWorker類的文檔中有一個很好的示例。

您可以使用BackgroundWorker類。

看到這個答案。

ChrisF是正確的。 您的長操作應在BackgroundWorker線程中完成。 您可以使用BackgroundWorker報告進度,並將其連接到表單上的進度欄。

您需要使用BackgroundWorker對操作進行線程化。 還有其他方法可以對該操作進行線程化,但是這種方法可能是最簡單的,並且將繼續在前台執行消息泵送,因此Windows不會認為您的應用程序已停止響應。

另一個選擇是使用Thread ,並使用Thread.Join等待后台任務完成,因為Thread.Join在等待時還會向Windows發送標准消息泵信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM