【发布时间】:2012-06-14 14:27:51
【问题描述】:
我有一个 WPF 应用程序,我必须在其中执行一项长时间运行的任务(基本上是从网络读取)。只是为了给你一个快照,我在按钮点击上做以下事情
Dim t As Task(Of String) = Task.Factory.StartNew(Of String)(Function()
'Thread.sleep is simulating long running task that will make UI unresponsive
Thread.Sleep(10000)
Return "Hello world from async task"
End Function)
TextBlock1.Text = t.Result
我不能使用基于事件的异步方法,因为读取 API 实际上存在于我在程序中引用的 dll 中,其中包含函数 Public function ReadFromNetwork() as String。此 API 正在对网络进行异步调用以读取长字符串并返回 UI。所以,简而言之,我正在做TextBlock1.Text = ExternalDll.ReadFromNetwork()。
但问题是即使我使用任务异步,UI 仍然没有响应。
您能否检测一下我是否在代码中遗漏了某些内容。
任何帮助/建议将不胜感激 提前感谢
【问题讨论】:
标签: .net wpf vb.net task-parallel-library