在C#WinForms应用程序中启动后台线程的适当位置在哪里?

时间:2011-05-09 17:46:55

标签: c# winforms multithreading

我想开始2个后台线程。一个线程充当客户端的服务器,另一个线程充当服务器的客户端。此应用程序是服务器和客户端应用程序。我应该在调用Application.Run()之前在Main()函数中启动这些线程吗?或者应该在加载主表单后创建它们?我试图保持UI和业务逻辑彼此分开,但我知道这些线程需要将事件通知给表单。这个最好的编码方法是什么?谢谢!

2 个答案:

答案 0 :(得分:1)

如果他们需要在主窗体上执行逻辑,则需要该逻辑在创建主窗体的线程上运行。因此客户端和服务器都需要引用主窗体,以便它们可以调用Invoke或BeginInvoke(取决于主窗体上的代码是同步还是异步)。因此,您应该在加载主表单后启动线程,以便可以将对它的引用传递给客户端和服务器。

答案 1 :(得分:0)

在创建用户界面之前在Main()启动它们。