WPF 自定义快速实现线程等待函数FastTask
Posted 多放辣椒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
WPF自定义控件与样式(11)-等待/忙/正在加载状态-控件实现