0

我正在开发一个使用 SignalR 进行通信的简单聊天应用程序。每当收到来自另一个用户的私人消息时,我想显示一个 MessageForm。问题是,回调方法在不同的线程上运行,似乎将新表单循环与主表单合并存在问题,因此应用程序挂起这是我的回调方法:

private void MessageReceived(object sender, Client.MessageEventArgs args)
    {
        var form = new MessageForm();
        form.MessageReceived(sender,args);
        form.Show();
    }

所以问题是我如何创建表单以便它使用主表单循环?

4

1 回答 1

0

好的,我找到了答案 :) 我有点困惑,因为我使用 from.Invoke 方法来运行 show 方法,显然它不起作用,因为表单是在回调线程中创建的,然后我使用了 Invoke 中的 main方法和中提琴,它就像一个魅力:) 这是代码:

private void MessageReceived(object sender, Client.MessageEventArgs args)
    {

        var form = new MessageForm();
        form.MessageReceived(sender,args);
        Invoke(new Action(form.Show));
    }
于 2012-10-31T09:08:05.807 回答