多线程编程:从基础到实用工具
1. 直接更新用户界面的问题
在多线程编程中,直接从后台线程更新用户界面可能会带来一些问题。例如,下面这段代码:
Private Sub UpdateTextRight()
' Get the dispatcher from the current page, and use it to invoke
' the update code.
Me.Dispatcher.BeginInvoke(AddressOf SetText)
End Sub
Private Sub SetText()
' Simulate some work taking place with a five - second delay.
Thread.Sleep(TimeSpan.FromSeconds(5))
txt.Text = "Here is some new text."
End Sub
这里的问题在于所有工作都在调度线程上进行,这会像单线程应用程序一样占用调度器。
2. 创建线程包装器
为了避免直接从后台线程更新用户界面带来的问题,可以创建一个线程包装器。在创建线程包装器之前,先创建一个基类 ThreadWrapperBase 是很有意义的,这样可以使用相同的模式创建多个后台任务,而无需每次都重复相同的代码。
ThreadWrapperBase 类的代码如下:
多线程编程:基础到实用工具解析
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



