-1

所以我有一个frmMainMenu表格和一个frmMainGame表格。

我有一个使用 delegates 和 shows 隐藏主菜单的功能frmMainGame

在我的program.cs中,我声明了一个 Network 类(Program.Network)

每当我隐藏frmMainMenu网络类时,基本上都会等待菜单再次显示。即使frmMainMenu隐藏,我也需要运行网络类。

我将通过套接字向网络类发送一个数据包,直到我关闭frmMainGame并显示之前什么都不会发生frmMainMenu,然后消息就会出现。为什么会这样?

4

2 回答 2

0

我猜你使用主线程进行联网,虽然没有 ui,但消息队列会等到有东西要显示。

是使用默认线程池在后台线程中执行操作的示例。

这也是一个名为 BackgroundWorker 的好类,您可以使用它来向 ui 报告进度。

于 2013-06-09T15:29:31.523 回答
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
}
于 2013-06-09T16:45:54.673 回答