TaskBarProgress(任务栏进度条)

 1  <Window.TaskbarItemInfo>
2 <TaskbarItemInfo />
3 </Window.TaskbarItemInfo>
4
5 <Grid>
6 <ProgressBar x:Name="ProgressBar" Margin="10"
7 HorizontalAlignment="Stretch"
8 VerticalAlignment="Center"
9 Height="23" />
10 </Grid>

 

 1 public partial class MainWindow : Window
2 {
3 public MainWindow()
4 {
5 InitializeComponent();
6
7 Loaded += new RoutedEventHandler(MainWindow_Loaded);
8 }
9
10 void MainWindow_Loaded(object sender, RoutedEventArgs e)
11 {
12 //BackgroundWorker,在单独的线程上执行操作
13 BackgroundWorker worker = new BackgroundWorker();
14
15 //BW.DoWork,调用BW.RunWorkerAsync()时发生
16
17 //初始化命名委托;Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块;
18 worker.DoWork += (s, ev) =>
19 {
20 for (int i = 0; i < 100; i += 10)
21 {
22 Thread.Sleep(1000);
23
24 //BW.ReportProgress,引发BW.ProgressChanged事件
25 ((BackgroundWorker)s).ReportProgress(i);
26 }
27 };
28 //调用BW.ReportProgress时发生
29 worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
30
31 //当后台操作已完成,被取消或引发异常时发生
32 worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
33
34 //BackgroundWorker.WorkerReportsProgress 获取或设置一个值,该值指示 BackgroundWorker 能否报告进度更新。
35 worker.WorkerReportsProgress = true;
36
37 //TaskbarItemInfo获取或设置 System.Windows.Window 的任务栏缩略图。
38 //TaskbarItemInfo.ProgressState 获取或设置一个值,该值指示在任务栏按钮中显示进度指示器的方式。
39
40 TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Indeterminate;
41
42 //TaskbarItemProgressState枚举值
43 //None=0,Indeterminate=1(闪烁绿色),Normal=2(绿色),Error=3(红色),Paused=4(黄色)
44
45 //开始执行后台操作
46 worker.RunWorkerAsync();
47
48 }
49
50
51 void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
52 {
53 //ProgressChangedEventArgs.ProgressPercentage 获取异步任务的进度百分比
54 ProgressBar.Value = e.ProgressPercentage;
55
56 // double TaskbarItemInfo.ProgressValue获取或设置一个值,该值指示任务栏按钮中进度指示器的填满状态。
57 TaskbarItemInfo.ProgressValue = (double)e.ProgressPercentage / 100;
58 }
59
60 void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
61 {
62 ProgressBar.Value = 100;
63 TaskbarItemInfo.ProgressValue = 1.0;
64 }
65 }




转载于:https://www.cnblogs.com/January/archive/2012/04/06/2434880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中实现批量执行任务的实时进度条,可以考虑以下步骤: 1. 创建一个定时任务,用于每隔一段时间更新任务的进度。 2. 创建一个线程池,用于执行批量任务。 3. 在任务执行的方法中,利用CountDownLatch类来控制任务的执行进度。 4. 在每个任务执行完后,将进度信息保存到一个共享的数据结构中,例如ConcurrentHashMap。 5. 在定时任务中,通过遍历共享数据结构获取任务的进度,并计算出总进度。 6. 将总进度以进度条的形式展示给用户。 具体实现步骤如下: 1. 在Spring Boot项目中创建一个定时任务类,使用@Scheduled注解指定任务执行的频率。 2. 在该定时任务类中定义一个List来保存任务的执行进度信息。每个任务的进度信息可以通过一个自定义的类来表示,包括任务的名称和进度值。 3. 创建一个线程池,可以使用ThreadPoolTaskExecutor类来创建,并设置核心线程数、最大线程数等属性。 4. 在批量执行任务的方法中,使用CountDownLatch来控制任务的执行进度。在每个任务执行完成后,使用put方法将任务的进度信息保存到进度信息的List中。 5. 在定时任务的方法中,遍历进度信息的List,获取每个任务的进度,并计算总进度。 6. 将总进度以进度条的形式输出给用户。 通过以上步骤,我们可以实现在Spring Boot中批量执行任务并实时展示任务的进度条。这样用户就可以清楚地知道任务的执行进度,提高用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值