private void CreatThread(string formId)// 代码生成进程从ui线程传入数据
{
Dispatcher x = Dispatcher.CurrentDispatcher;//取得当前工作线程
//另开线程工作
ThreadStart start = delegate()
{
Func<T> fu = new Func<T>(() => 方法(<span style="font-family: Arial, Helvetica, sans-serif;">formId</span><span style="font-family: Arial, Helvetica, sans-serif;">));// 工作函数</span>
var Result = fu();// 开始工作
x.BeginInvoke(new Action(() =>// 异步更新界面
{
// 线程完成后的操作 //课操作UI线程
}), DispatcherPriority.Normal);
};
new Thread(start).Start(); //启动线程
}之前写程序发现有一个方法运行时间很长,如果在wpf的UI线程的话,会等待很久,这样会造成使用的加大不便。
于是想用线程来运行这个方法。
可是在wpf中不能简单的使用thread,这样会出错,同事线程中不能相互使用元素。纠结了很久。
最后找到一个简单实用的线程实现方式,就是实用task,或者func
本文介绍了一种在WPF应用中利用Task解决UI线程阻塞问题的方法,通过异步调用避免了长时间运行的任务影响用户体验。重点阐述了如何将耗时操作放入新的线程中执行,同时确保UI线程的流畅性。

7060

被折叠的 条评论
为什么被折叠?



