当前位置: 首页 > news >正文

WPF 一个执行耗时任务,页面更新等待时间的例子

xaml页面,一个按钮,一个lable,lable用来更新等待的时间。点击按钮,每过1秒,label的数值+1,直到任务结束。

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Button Content="Button" HorizontalAlignment="Left" Margin="350,0,0,0" VerticalAlignment="Center" Height="72" Width="149" Click="Button_Click"/><Label Content="0" HorizontalAlignment="Left" Margin="350,281,0,0" VerticalAlignment="Top"  x:Name="Lab"/></Grid>
</Window>

.cs代码

 private async void Button_Click(object sender, RoutedEventArgs e){bool isOk = false;Wait((result)=>isOk = result);while (!isOk){//等待耗时任务结束,界面的Label加1await Task.Delay(1000);Lab.Content = Convert.ToInt32(Lab.Content) + 1;}}private async void Wait(Action<bool> callback){bool isok = false;//耗时任务for (int i = 0; i < 10; i++){await Task.Delay(1000);}isok = true;callback?.Invoke(isok);}

相关文章:

  • 【计算机毕业设计】211校园约拍微信小程序
  • Vue跨标签页数据通信
  • 广告变现小游戏对接广告流量变现平台开发 源码搭建
  • Vue在表单校验中trigger属性指定何时触发校验规则
  • 路由框架 ARouter 原理及源码解析
  • Linux-目录和文件
  • Blazor的SSR服务端渲染是不是交互式的
  • 数据结构:3.3.4遍历应用例子
  • 达索系统基于模型的系统工程:开启创新与高效的新时代
  • Golang | Leetcode Golang题解之第145题二叉树的后序遍历
  • vmware workstation下centos7屏幕切换及大小调整
  • 计算机专业毕设-在线商城系统
  • 【源码】2024最新陪诊小程序uniapp+thinkphp
  • 在WordPress中使用AI的实用方法:入门级
  • 【名词解释】Unity中的3D物理系统:刚体
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【RocksDB】TransactionDB源码分析
  • 4个实用的微服务测试策略
  • AngularJS指令开发(1)——参数详解
  • Apache Pulsar 2.1 重磅发布
  • Docker下部署自己的LNMP工作环境
  • Git的一些常用操作
  • JAVA多线程机制解析-volatilesynchronized
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Phpstorm怎样批量删除空行?
  • redis学习笔记(三):列表、集合、有序集合
  • Service Worker
  • Unix命令
  • Yii源码解读-服务定位器(Service Locator)
  • 百度地图API标注+时间轴组件
  • 创建一个Struts2项目maven 方式
  • 精彩代码 vue.js
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 突破自己的技术思维
  • 微信支付JSAPI,实测!终极方案
  • 项目管理碎碎念系列之一:干系人管理
  • 一道闭包题引发的思考
  • 追踪解析 FutureTask 源码
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # Java NIO(一)FileChannel
  • (2)MFC+openGL单文档框架glFrame
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (二)linux使用docker容器运行mysql
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (九十四)函数和二维数组
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)