我有一个从SharePoint站点加载数据的程序。它加载txt文件,xml文件等。其中任何一个"加载"由于用户与SharePoint的连接,操作可能会花费大量时间。因此,在加载数据之前,整个Windows窗体UI都没有响应。
所以我想知道如何轻松地创建一个线程"检索"整个Windows窗体UI的信息仍然有效且可操作。
答案 0 :(得分:1)
您有几个选择。我不打算为其中任何一个提供确切的代码,但是,我会为您提供研究主题。
您可以BackgroundWorker使用Task.Run(),Thread.Start()或管理您自己的线程。下载完成后你需要发起一个事件吗?如果是这样,你可以这样做:
var task = new Task(() => DoSomething());
task.ContinueWith(() => SignalDone(), TaskScheduler.FromCurrentSynchronizationContext());
task.Run();
ContinueWith和TaskScheduler.FromCurrentSynchronizationContext将确保在UI线程上完成信令以最小化竞争条件。如果您正在对正在填充的任何内容进行数据绑定,那么您自己就可以了。