Adr*_* K. 2 wpf multithreading textbox backgroundworker
我正在编写一个WPF应用程序(新技术,主要是我一直在WinForms编写).我的目标是让UI响应整个时间,并且我已经读过它可以使用Threading/BackgroundWorker获得.我认为我应该使用后台工作者来处理耗时的方法.但我计划使用方法*m_AddLog(string logText)*,它应该将文本附加到文本框.我希望从主UI线程以及后台工作者调用此方法,因此消息将在后台处理时立即发送,而不是等待后台任务结束.你能不能请建议如何正确地写这些方法,让UI完全响应,因为我不太了解代表,调用,后台工作者等等?
如果要运行某些后台进程,则在完成时更新UI,以下模式运行良好(如果从UI线程运行).
Task.Factory.StartNew(() =>
{
// Background work
}).ContinueWith((t) => {
// Update UI thread
}, TaskScheduler.FromCurrentSynchronizationContext());
Run Code Online (Sandbox Code Playgroud)
将后台工作放在第一个任务中,UI工作在下面的任务中.TaskScheduler选项确保第二个任务在UI线程上运行.
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |