我正在开发一个使用SignalR进行通信的简单聊天应用程序。 我想在收到来自其他用户的私人消息时显示MessageForm。 问题是,回调方法在不同的线程上运行,似乎将新表单循环与主表单合并出现问题,因此应用程序挂起 这是我的回调方法:
private void MessageReceived(object sender, Client.MessageEventArgs args)
{
var form = new MessageForm();
form.MessageReceived(sender,args);
form.Show();
}
所以问题是如何创建表单以便它使用主窗体循环?
答案 0 :(得分:0)
好的,我找到了答案:) 我有点困惑,因为我使用from.Invoke方法来运行show方法,显然它不起作用因为表单已经在回调线程中创建然后我使用了来自Invoke方法和中提琴的主,它就像一个魅力:) 这是代码:
private void MessageReceived(object sender, Client.MessageEventArgs args)
{
var form = new MessageForm();
form.MessageReceived(sender,args);
Invoke(new Action(form.Show));
}