using System.Threading;
//创建托管线程ThreadStart ts = new ThreadStart(this.ExportAll);
//启动托管的线程
Thread expThread = new Thread(ts);
//使操作系统将当前实例的状态更改为 ThreadState::Running,并选择提供包含线程执行的方法要使用的数据的对象。
expThread.Start();
//一下代码则为:显示进度条、弹出其他窗体 或 其他的操作
MessageBox.Show("执行完毕!等待程序睡眠五秒");
/// <summary>
/// 执行导出图片方法,等同于 Graphicscs()/// </summary>
void ExportAll()
{
//其他操作模拟睡眠5秒,执行新线程中的代码
Thread.Sleep(5000);
//睡眠完毕后,回到主线程上,否则会报“跨线程访问等问题”,说明该方法中在另一个线程中,不能访问主线程的东西
//触发主线程方法
this.Dispatcher.BeginInvoke(this.ExportFinished);
}
void ExportFinished()
{
MessageBox.Show("异步执行完毕!");
}