首页 > 代码库 > C#多线程 BackgroundWorker类使用小例-WPF程序
C#多线程 BackgroundWorker类使用小例-WPF程序
1.程序实现了一个简单的使用了BackgroundWorker类的WPF程序,用于在后台线程给进度条赋值。
运行结果如下:
后台线程正常运行结束:
后台线程中途被取消:
2.程序仅修改了 MainWindow.xaml 文件和 MainWindow.xaml.cs 文件,两个文件内容如下
MainWindow.xaml 文件:
<Window x:Class="SimpleWorker.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="150" Width="250"> <StackPanel> <ProgressBar Name="progressBar" Height="20" Width="200" Margin="10"></ProgressBar> <Button Name="btnProcess" Width="100" Click="btnProcess_Click" Margin="5">开始后台任务</Button> <Button Name="btnCancel" Width="100" Click="btnCancel_Click" Margin="5">取消后台任务</Button> </StackPanel> </Window>
ainWindow.xaml.cs 文件:
using System.Windows; using System.ComponentModel; using System.Threading; namespace SimpleWorker { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { BackgroundWorker bgWorker = new BackgroundWorker(); public MainWindow() { InitializeComponent(); bgWorker.WorkerReportsProgress = true; bgWorker.WorkerSupportsCancellation = true; bgWorker.DoWork += DoWork_Handler; bgWorker.ProgressChanged += ProgressChanged_Handler; bgWorker.RunWorkerCompleted += RunWorkerCompleted_Handler; } private void btnProcess_Click(object sender,RoutedEventArgs e) { if (!bgWorker.IsBusy) { bgWorker.RunWorkerAsync(); } } private void ProgressChanged_Handler(object sender, ProgressChangedEventArgs args) { progressBar.Value = http://www.mamicode.com/args.ProgressPercentage;>C#多线程 BackgroundWorker类使用小例-WPF程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。