C# 解决界面跨线程问题
定义一个公共类:
public class TaskPublic
{
public static TaskScheduler TaskScheduler;
public static Task BeginInvoke(Action action)
{
var task = new Task(action);
task.Start(TaskScheduler);
return task;
}
}
在界面中初始化TaskScheduler全局变量:
TaskPublic.TaskScheduler = TaskScheduler.FromCurrentSynchronizationContext();
使用方式:
TaskPublic.BeginInvoke(() =>
{
MessageBox.Show("Test");
});