以下问题:
我想在程序中上传文件,用户应该可以进行设置。因为文件非常大,我想将它们加载到一个新线程中,以便用户可以在 GUI 中进行其他设置。(速度:快)
- 用户选择文件
- 程序启动一个新线程
- 线程正在加载文件
- 程序调用调度程序将文件设置到布局中
到目前为止一切顺利,第一步到第三步没有问题。
但在第 4 步中,我创建了一个 Dispatcher.Invoke。
private void SetNewContent(object newContent)
{
_userControl.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Action(
delegate()
{
_userControl.SetContent(newContent);
}
)
};
}
_userControl.SetContent 方法很慢。10,000 个页面的方法大约需要 5 秒,这对于用户来说太长了。在此期间,用户无法更改 GUI 设置。
有没有可能阻止它?