【问题标题】:Control query is not correct in DotNetDotNet 中的控制查询不正确
【发布时间】:2011-07-20 18:38:31
【问题描述】:

请帮忙,我收到一个错误“无法调用,因为对象什么都不是”。但是我添加了一个查询来询问对象是否什么都不是。 Visual Studio 仍然进入例行程序。

Private WithEvents frm As frmFullScreen

 Private Sub UpdateImageInGuiAsync(ByVal bm As System.Drawing.Bitmap)


        If Me.frm.InvokeRequired = True Then
            Dim dl As New BitmapDelegate(AddressOf UpdateImageInGuiGuiThread)
            If Me.frm IsNot Nothing Then Me.frm.Invoke(dl, bm)
        Else
            Call Me.UpdateImageInGuiGuiThread(bm)
        End If

    End Sub

知道如何解决这个问题吗?

问候

【问题讨论】:

  • 什么是frm?它在哪里声明?你是如何初始化它的?代码错误在哪个子上?子从哪里调用?
  • frm 是 System.Windows.Forms.Form(上面没有任何内容)。 frm = 新的 Form1。 Sub 称为 UpdateImage(bitmap)。它是从父级调用的。
  • 什么时候调用?从Form1 表单退出后?
  • 方法被调用,比方说,每 1 秒。但是用户可以关闭frm,并且在下一次调用时,方法应该退出下一个传入的图像。但是调试器没有显示正确的信息或没有计算,甚至我需要添加一些东西来捕捉这个错误。

标签: .net winforms multithreading invoke


【解决方案1】:

您的表单是否可能正在处理?

如果是这样,我只需将整个 if 块包装在 try/catch 中。

【讨论】:

  • 我会说这是我自己的一个特殊情况,只需处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多