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