首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

Windows 8 開發入門(七):三種進度條與兩種 ThreadPool 定時器

     編輯:關於C#

Windows 8 進度指示器分三類,定時器採 ThreadPoolTimer 非同步模式。

三種進度指示器

類型適用情境關鍵屬性
ProgressBar (確定)已知進度百分比Value、Maximum、IsIndeterminate="False"
ProgressBar (不確定)未知進度,等待中IsIndeterminate="True"
ProgressRing環狀不確定進度IsActive="True"
<!-- 確定進度條 -->
<ProgressBar Name="probar1" Maximum="100" Value="0" Height="20"
             IsIndeterminate="False" Margin="275,167,966,581"/>

<!-- 不確定進度條 -->
<ProgressBar IsIndeterminate="True" Width="80" Height="10" Margin="600,167,566,591"/>

<!-- 不確定進度環 -->
<ProgressRing IsActive="True" Height="58" Width="67" Margin="1000,167,299,543"/>

ThreadPoolTimer 兩種模式

1. 延遲定時器:單次執行

private void Button_Click_1(object sender, RoutedEventArgs e) {
    DelayTimer();
}

private void DelayTimer() {
    ThreadPoolTimer.CreateTimer(async (timer) => {
        await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => {
            probar1.Value += 20;
        });
    }, TimeSpan.FromMilliseconds(3000));
}

2. 週期定時器:重複執行

private void Button_Click_2(object sender, RoutedEventArgs e) {
    PeriodicTimer();
}

private void PeriodicTimer() {
    ThreadPoolTimer.CreatePeriodicTimer(async (timer) => {
        await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => {
            probar1.Value = probar1.Value + 1;
        });
    }, TimeSpan.FromMilliseconds(100));
}
進度條與定時器執行畫面
圖 1:三種進度指示器與兩種定時器示範介面

原始碼下載:Win8Progress.rar

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved