我应该采用什么WPF线程方法?

Adr*_* K. 2 wpf multithreading textbox backgroundworker

我正在编写一个WPF应用程序(新技术,主要是我一直在WinForms编写).我的目标是让UI响应整个时间,并且我已经读过它可以使用Threading/BackgroundWorker获得.我认为我应该使用后台工作者来处理耗时的方法.但我计划使用方法*m_AddLog(string logText)*,它应该将文本附加到文本框.我希望从主UI线程以及后台工作者调用此方法,因此消息将在后台处理时立即发送,而不是等待后台任务结束.你能不能请建议如何正确地写这些方法,让UI完全响应,因为我不太了解代表,调用,后台工作者等等?

Pau*_*ulB 7

如果要运行某些后台进程,则在完成时更新UI,以下模式运行良好(如果从UI线程运行).

Task.Factory.StartNew(() =>
            {
                // Background work
            }).ContinueWith((t) => {
                // Update UI thread

            }, TaskScheduler.FromCurrentSynchronizationContext());
Run Code Online (Sandbox Code Playgroud)

将后台工作放在第一个任务中,UI工作在下面的任务中.TaskScheduler选项确保第二个任务在UI线程上运行.