【发布时间】:2011-03-29 21:18:16
【问题描述】:
我有一个相当简单的线程问题。
我正在编写一个简单的实用程序,它将根据用户定义的参数运行各种 SQL 脚本。
为了保持 UI 响应并提供有关正在执行的脚本状态的反馈,我决定使用 ThreadPool.QueueUserWorkItem 来处理各种脚本的执行(通过 SMO。)
但是,对于如何将 SMO 将返回的输出信息传递回 UI 线程,我感到有些困惑。
对于这个实用程序,我使用 WPF 和 MVVM 进行演示。我在想我会有一个ScriptWorker 类,我可以传递参数和位置以及运行脚本的顺序。
在我运行每个脚本之后,我想以某种方式将结果返回给 UI 线程,以便它更新输出窗口,然后我想让工作人员移动到下一个任务。
我确定这是一个基本问题,但在查看 QueueUserWorkItem 并看到我基本上是通过回调开始工作后,我不确定如何完成我想要完成的工作。
我的假设基于这篇 Microsoft 文章:
http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx
感谢您的信息!
【问题讨论】:
-
我会看看 BackgroundWorker 类。它使运行后台进程和向 UI 线程发送更新变得容易
标签: c# wpf multithreading .net-3.5