我有一个解析到html文件的方法,但它需要很长时间,UI冻结。所以我想使用一个线程,但我很困惑。线程有很多种,如后台工作人员,调度员等。我应该使用哪种类型的?另外,在我的方法中,我传递了一个参数。如果我使用线程,如何传递一个参数?HTML解析 - 我应该使用哪种线程?
回答
下面是一个例子代码中使用背景工人:
// I usually disable controls (buttons, etc.)
// so user is prevented to perform other
// actions
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (s, e) =>
{
// Get the parameter
var param = e.Argument as <your expected object>
// Perform parsing
}
worker.RunWorkerCompleted += (s1, e1) =>
{
System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke(
new Action(() =>
{
// enable you controls here
}));
}
worker.RunWorkerAsync(parameter);
希望这有助于!
我把我的代码在dowork,但它看起来不喜欢工作。我在dowork中有一个listview,它没有填充。 – user1005633 2012-07-25 10:55:41
在做工作中列表视图的目的是什么? – lionheart 2012-07-26 08:36:23
我有一个方法,我解析一个HTML,我动态创建一个列表视图与我从html获得的内容。在RunWorkerCompleted中//使你在这里控制什么意思?我可以在那里更新我的UI控件吗?谢谢!! – user1005633 2012-07-26 08:52:36
自WPF以来,我不再使用backgroundworkers。我听说它是为WinForms创建的,应该在WPF中避免,但我可能会误解。 既然你传递一个字符串作为参数(而不是一些UI控件)应该有访问另一个线程像这样没有问题:
private void DoStuff(string documentName)
{
Action a =() =>
{
var result = ParseFile(documentName);
Action b =() =>
{
TextBox1.Text = result;
};
Dispatcher.BeginInvoke(b);
};
a.BeginInvoke(callback =>
{
a.EndInvoke(callback);
}, null);
}
注意:不要把代表一个循环中,而把循环在代表内部。
- 1. 我应该使用哪种类型的asio解析器对象?
- 2. 我应该使用哪种SSL实现?
- 3. Spark - 我应该使用哪种语言?
- 4. UrlEncoding - 我应该使用哪种编码?
- 5. 我应该使用哪种IronPython IDE?
- 6. 我应该使用哪种IVI参考?
- 7. AngelScript代码解析器 - 我应该采取哪种方式?
- 8. 我应该使用哪种语言?
- 9. 我应该使用哪种Excel公式
- 10. 我应该使用哪种python安装?
- 11. mysql ---我应该使用哪种类型?
- 12. 我应该使用哪种布局?
- 13. 我应该使用哪种PageRank公式?
- 14. 我应该使用哪种PayPal iPhone SDK?
- 15. Android我应该使用哪种布局
- 16. 我应该使用哪种DAL选择?
- 17. 我应该使用哪种布局?
- 18. 我应该使用哪种算法来更改/修改曲线
- 19. 我应该使用哪个引用来解析Image类?
- 20. 我应该使用哪种音频编解码器?
- 21. 我应该使用哪种OAuth流程用于我的本机应用程序?
- 22. 使用多线程解析Android HTML
- 23. 我应该在Java多线程中使用哪种数据结构?
- 24. 我应该在Ubuntu中使用哪种归档实用程序?
- 25. 我应该在PHP中使用哪些RSS解析器?
- 26. 我应该使用哪种设计模式来解析HTML属性的函数?这是Regex的工作吗?
- 27. 我应该为我的iPhone应用使用哪种风格
- 28. 我应该使用哪个线程或进程?
- 29. Thinktecture Identityserver和Cordova应用程序 - 我应该使用哪种流程?
- 30. 我是否应该使用DomDocument解析HTML代码
我经常使用Actions,但是一个侧面的问题是我们在谈论什么样的参数? – Silvermind 2012-07-25 09:23:48
我通过一个字符串参数与HTML文档的URL ... – user1005633 2012-07-25 10:31:22