【发布时间】:2013-05-16 21:15:19
【问题描述】:
我有一个后台工作人员,它应该做两件事。
1.在GUI中添加用户控件
2.读取用户在 sed usercontrol 中输入的值并将其传递给函数
做这个的最好方式是什么?
我正在考虑使用 2 种事件处理方法来传递给 DoWork 事件。
第一个处理点号 1,第二个处理点号 2。
然后我会这样做:
1. 在worker.ProgressChanged 事件中——worker 将用户控件添加到页面
2. 在 worker.ProgressChanged 事件中 - 在 while 循环中,worker 等待填写所需的 ui 值
3.在worker.RunWorkerCompleted事件内部——告诉worker执行第2个任务。
这是正确的方法吗?
如果不是,最好的方法是什么?
如果这是正确的方法,那么工人等待价值的最佳方式是什么?
只是一个内部睡眠的while循环还是有更复杂的方法?
先感谢您。
编辑 1:我正在使用 WPF - XAML,如果这有什么不同的话
【问题讨论】:
-
你应该告诉我们你真正想做什么,而不是你认为你应该怎么做。
-
为什么不使用两个BackgroundWorker,或者完全切换到Task/Rx? BackgroundWorker 仅适用于最简单的场景,Microsoft 确实为复杂的场景提供了更强大的库。
-
为什么要在后台worker中添加控件?
标签: c# wpf backgroundworker