【问题标题】:WinForm hangs when openedWinForm在打开时挂起
【发布时间】:2014-01-16 15:31:04
【问题描述】:

当通过网络接收到特定消息时,我正在尝试启动一个新的 WinForm,我绝对确定正在接收该消息,因为该表单已打开。但是,当它执行时,它会挂起并且不会停止。我怀疑这是因为我从 UI 线程以外的线程打开它,但不知道如何修复它。我试过这个:

private delegate void OpenFormDV();
    public void OpenForm()
    {
        if (this.InvokeRequired) { OpenFormDV openForm = new OpenFormDV(OpenForm); }
        else {
            NewForm newForm = new NewForm();
            newForm.Show();
        }
    }

但表单仍然冻结。我该如何解决?

【问题讨论】:

  • 您构造了一个委托来保存 OpenForm 方法,但您不对该委托做任何事情。

标签: c# winforms


【解决方案1】:

这个问题的答案可能在这个帖子里:

C# calling form.show() from another thread

您必须使用全局 Invoke 来与您的 newForm 交互。

【讨论】:

  • 没关系,我调用了错误的方法。这确实有效。
猜你喜欢
  • 1970-01-01
  • 2020-01-24
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多