2010-07-28 50 views
1

我需要在運行單個命令(ReadXML或WriteXML)的長 時在窗體中顯示「繁忙」指示符。到目前爲止,我正在使用如何在長時間運行的C#.NET CF 2.0進程中顯示繁忙的指示符?

Cursor.Current = Cursors.WaitCursor; 

但我正在尋找更多adqeuate的方式來做到這一點。沒有必要 顯示已完成的百分比,只有一個可視化參考,該程序是 工作(如ProgressBar字幕樣式 - 不可用於.NET CF-)。

我使用C#/的WinForms/.NET CF 2.0

TIA

+1

「更充足」是什麼意思?標準的WaitCursor,看起來像你所要求的 - 提供了一個可視化的參考,該應用程序正在做一些沒有任何特定進度的指標。這是不是你想要的? – ctacke 2010-07-28 14:04:00

+0

@ctacke:我想有較明顯的指標,因爲用戶通常是「在球場上」的工作,暴露在雨水和陽光直射,可以限制屏幕可視性 – PabloG 2010-07-28 15:54:43

+0

我將與克里斯同意。使用默認的WaitCursor。它的系統標準。偏離這可能會導致期待等待光標的用戶感到困惑,但看到不同的東西。 – PaulG 2010-07-30 21:42:32

回答

3

顯示進度是常常希望的。但你需要能夠衡量進展,使其有意義。猜測你的意思是DataSet.ReadXml(),那個類沒有任何類型的ProgressChanged事件,你可以使用這個事件讓用戶知道工作進展到什麼程度。你也不能預測它將要花多長時間。執行時間大致與.xml文件的大小成正比,但不可能準確猜測比例。

你所能做的就是讓用戶知道「我很忙,不期待任何事情」。在過去的20年中,沙漏光標一直是這樣做的標準方式。你可以用動畫獲得更多的樂趣。這就是在字幕模式下的ProgressBar。它根本沒有幫助用戶。儘管它增加了一點信息:「操作系統沒有崩潰」。 20年前有用。

您可以創建自己的動畫。動畫GIF是否適用於CF?如果沒有,你可以自己翻動位圖。然而,你承擔額外的負擔,你必須保持動畫動畫。這就要求您在另一個線程上運行ReadXml()調用,以便UI線程可以保持圖像更新。在CF中沒有BackgroundWorker,你必須自己編寫這個線程。

+0

不,動畫GIF不起作用 - 位圖翻轉是您唯一的選擇。 – ctacke 2010-07-28 14:45:12

相關問題