WPF 自定义快速实现线程等待函数FastTask
在WPF实现
我们常常需要实现这个目标:线程里面执行复杂的任务,然后主窗体等待动画
我把我最简单的东西给包了一下,更方便使用,大家也可以方便使用
1:添加CommHelper类 FastTask方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using LoadingIndicators.WPF;
using System.Threading.Tasks; namespace PLC_Data_Backup
{
public class CommHelper
{
public static void FastTask(Action _actionDoing, Action _actionAfter=null)
{
ProcessControl loading = new ProcessControl();
Task t = new Task(() =>
{
try
{
_actionDoing(); Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
loading.Close(); }));
if (_actionAfter != null)
{ _actionAfter(); }
}
catch (Exception ex)
{
Application.Current.Dispatcher.Invoke(new Action(() =>
{ loading.Close();
MessageBox.Show("失败\r\n" + ex.ToString());//new PopupWindow().ShowThis("绘图失败");
}));
}
});
t.Start();
loading.ShowDialog();
;
}
}
} FastTask(Action _actionDoing, Action _actionAfter = null)
_actionDoing是等待中做的事情,
_actionAfter是等待做完之后做的事情,如果跨线程请考虑跨线程调用
2:添加动画 dll

3:开始测试
private void Button_Click(object sender, RoutedEventArgs e)
{
CommHelper.FastTask(new Action(() =>
{
Thread.Sleep(1000);//干复杂的事情
}),
new Action(()=>
{
MessageBox.Show("加载完成");
}));
}

,方便以后简单的使用了!
WPF 自定义快速实现线程等待函数FastTask的更多相关文章
- 对线程等待函数pthread_join二级指针参数分析
分析之前先搞明白,这个二级指针其实在函数内部是承接了上个线程的返回值. 看man手册,发现返回值是个普通指针.人家用二级指针来承接,可能准备干大事.这个可以自己搜索一下.原因嘛,二级指针是保存了这个地 ...
- WPF/MVVM Quick Start Tutorial - WPF/MVVM 快速入门教程 -原文,翻译及一点自己的补充
转载自 https://www.codeproject.com/articles/165368/wpf-mvvm-quick-start-tutorial WPF/MVVM Quick Start T ...
- SQL之收集SQL Server线程等待信息
要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据. sys.dm_os_wait_ ...
- Java多线程系列--“基础篇”05之 线程等待与唤醒
概要 本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long t ...
- java 多线程—— 线程等待与唤醒
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- WPF/MVVM 快速开始指南(译)(转)
WPF/MVVM 快速开始指南(译) 本篇文章是Barry Lapthorn创作的,感觉写得很好,翻译一下,做个纪念.由于英文水平实在太烂,所以翻译有错或者译得不好的地方请多指正.另外由于原文是针对W ...
- 收集SQLServer线程等待信息
要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据. sys.dm_os_wait_ ...
- SQL点滴13—收集SQLServer线程等待信息
原文:SQL点滴13-收集SQLServer线程等待信息 要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信 ...
- WPF 自定义 MessageBox (相对完善版)
WPF 自定义 MessageBox (相对完善版) 基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当 ...
随机推荐
- UVa 1595 Symmetry(set)
We call a figure made of points is left-right symmetric as it is possible to fold the sheet of paper ...
- springmvc将处理后的数据通过get方法传给页面时,可能会出现乱码。下面对于get请求中文参数出现乱码提出解决办法。
对于get请求中文参数出现乱码解决办法有两个: 1.修改tomcat配置文件(tomcat--->conf--->server.xml)添加编码与工程编码一致,如下: <Connec ...
- C#控制台自定义背景颜色,字体颜色大全
效果: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- xmlhttp
File an issue about the selected textFile an issue about the selected text XMLHttpRequest Living Sta ...
- C语言字符串操作函数实现
1.字符串反转 – strRev void strRev(char *str) { assert(NULL != str); int length=strlen(str); ; while(end ...
- Linux objdump命令
一.简介 objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具. 二.选项 http://my.oschina.net/alphajay/blog/7729 http://man. ...
- 【Log】logback指定配置文件(二)
通常我们在不同的环境使用不同的日志配置文件,本章讲指定logback的配置文件,如何使用logback参照[Log]logback的配置和使用(一) 写一个配置加载类,注意JoranConfigura ...
- [转载红鱼儿]delphi 实现微信开发(2)接入微信公众号平台
先要学习一下接入的资料,在这里,因为原理都在,所以一定要认真阅读,然后,利用Delphi实现一个对应函数,然后申请微信公众平台接口测试帐号. function CheckSignature(const ...
- 2018.10.17 NOIP模拟 管道(状压dp)
传送门 状压dp好题. 怎么今天道道题都有点东西啊 对于今天题目神仙出题人先膜为上策:%%%%DzYoAk_UoI%%%% 设f[i][j]f[i][j]f[i][j]表示选取点的状态集合为iii,当 ...
- js模态窗口返回值(table)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...