2011-09-29 99 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。在任何一種情況下,消息循環都會被創建並執行,以滿足您的問題。 –