所以我有frmMainMenu
表单和frmMainGame
表单。
我有一个使用委托隐藏主菜单的功能,并显示frmMainGame
。
在我的 program.cs 中,我声明了一个Network类 (Program.Network)
每当我隐藏frmMainMenu
时,网络类基本上都会等待再次显示菜单。即使隐藏frmMainMenu
,我也需要运行网络类。
我将通过套接字向网络类发送数据包,在关闭frmMainGame
并显示frmMainMenu
之前不会发生任何事情,然后会显示该消息。为什么会这样?
答案 0 :(得分:0)
我猜你使用主线程进行网络连接,而没有ui,消息队列会等到有东西显示出来。
here是使用默认线程池在后台线程中执行操作的示例。
这也是一个名为BackgroundWorker的好类,可以用来向ui报告进度。
答案 1 :(得分:0)
您基本上必须创建一个新线程:
public static System.Threading.Thread Network;
static void Main()
{
Network = new System.Threading.Thread(NetworkMethod); // Insert Name of your method here
Network.Start();
// Run your normal application
}
static void NetworkMethod()
{
// Do stuff that would block the UI
}