C# 如何使用wpf dispatcher创建多UI线程winforms应用程序

C# 如何使用wpf dispatcher创建多UI线程winforms应用程序,c#,wpf,winforms,multithreading,dispatcher,C#,Wpf,Winforms,Multithreading,Dispatcher,Martin在本文中的第二个回答解释了如何在winforms应用程序中使用dispatcher。这就解释了wpf方面的问题。所以我的问题是-我们可以在winforms应用程序中这样做吗?若否,原因为何?多谢各位 更新:我发现这也显示了Henk在下面提到的multiple app.run方法。但是,它不使用wpf调度程序。我想知道在winforms中使用wpf dispatcher(我的问题)与多个应用程序运行之间是否存在性能差异。无论您做什么,您都将被限制使用1个线程(UI线程)来更新您的窗口(

Martin在本文中的第二个回答解释了如何在winforms应用程序中使用dispatcher。这就解释了wpf方面的问题。所以我的问题是-我们可以在winforms应用程序中这样做吗?若否,原因为何?多谢各位


更新:我发现这也显示了Henk在下面提到的multiple app.run方法。但是,它不使用wpf调度程序。我想知道在winforms中使用wpf dispatcher(我的问题)与多个应用程序运行之间是否存在性能差异。无论您做什么,您都将被限制使用1个线程(UI线程)来更新您的窗口(winforms、wpf、本机代码)。您可以生成任意数量的工作线程来完成所有需要的数据收集和准备工作,但是仍然需要使用UI线程来完成更新。查看任务或BackgroundWorker类来完成这项工作

最大的问题是:为什么?你可以启动一个第二线程的应用程序。在WinForms中运行,但这似乎从来都不是一个好主意。同样的原因,在我发布的链接中提到。粘贴在这里。“在用户界面非常密集的应用程序中(例如,大约有十个窗口显示实时蒙太奇和吸墨纸数据的交易应用程序),简单地说,生成和布局视觉效果的成本可能会变得太高,单线程无法跟上。”我在问题中发布的文章链接清楚地演示了如何为每个窗口创建单独的消息泵/UI线程。它有16张选票,在最下面的评论中有很多赞扬。这是你在谷歌搜索“多ui线程”时得到的第一篇文章。我错过了什么?thanks@Gullu我明白了,所以你只需要每个窗口有一个消息循环。我会避免在这个层次上混合技术。将WinForms与WPF集成(在两个方向上)有很多问题,我认为在这个级别上混合它们只会引入不必要的复杂性。是的,Application.Run(form)适用于WinForms,Dispatcher.Run()适用于WPF。无论哪种情况,都会创建并执行消息循环,以满足您的问题。