2011-09-29 74 views
0

Martin在此link中的第二个答案解释了如何将调度程序用于winforms应用程序。这个link解释了wpf方面。所以我的问题是 - 我们可以在winforms应用程序中做到这一点?如果不是,为什么?谢谢如何使用wpf调度程序创建多UI线程winforms应用程序

更新:我发现这个link也显示Henk下面提到的多个app.run方法。但它不使用wpf调度程序。我不知道是否有在使用wpf dispacther在winforms(我的问题)与多个app.runs

+0

大问题:为什么?你可以在WinForms中启动App.Run的第二个线程,但这似乎也不是一个好主意。 –

+0

与我发布的链接中提及的原因相同。在这里粘贴。 “在一个非常用户界面密集的应用程序(例如,交易应用程序,大约有10个窗口显示实时蒙太奇和吸墨纸数据),生成和布局视觉效果的成本可能会变得太高,无法保持单一线程。” – Gullu

回答

1

之间性能差异无论你做什么,你将被限制使用1线程(UI线程)来更新您的Windows(Winforms,WPF,本机代码)。您可以创建尽可能多的工作线程,以便执行所需的所有数据收集和准备工作,但是您仍然必须使用UI线程来执行更新。看看Task或BackgroundWorker类来完成这项工作。

+1

我在我的问题中张贴的文章链接清晰地演示了如何为每个窗口创建单独的消息泵/ UI线程。它有16票和底部评论很多赞誉。这是你在谷歌搜索“多个UI线程”时得到的第一篇文章。我在这里错过了什么?谢谢 – Gullu

+0

@Gullu我明白了,所以你只想每个窗口有一个消息循环。我会避免混合这个级别的技术。将WinForms与WPF集成在一起(在任何一个方向上)都存在很多问题,我认为在这个级别混合它们会带来不必要的复杂性。是的,Application.Run(表单)将适用于WinForms,Dispatcher.Run()将适用于WPF。在任何一种情况下,消息循环都会被创建并执行,以满足您的问题。 –

相关问题