【问题标题】:Backgroundworker in a Winform Usercontrol in an ActiveX Control crashing the ActiveX使 ActiveX 崩溃的 ActiveX 控件中的 Winform 用户控件中的 Backgroundworker
【发布时间】:2011-07-05 15:36:29
【问题描述】:

我编写了一个带有可绑定属性的 ActiveX-Control。 ActiveX 由一个显示 WinForms 用户控件(通过 CWinFormsControl<..>)的对话框组成。 当 ActiveX 属性发生变化时,会调用 Usercontrol 上的一个函数,然后该函数应该执行一些数据库调用并显示结果。

到目前为止一切正常。

现在,当我想将数据库查询移动到 BackgroundWorker 时,但每次我在 backgroundworker 中调用我的数据库函数时,ActiveX-Control 都会崩溃。 UserControl 本身(在普通的 WinForms-Application 中)运行良好。

知道如何找出这里的问题吗?线程和 ActiveX 控件是否存在我不知道的一般缺陷?

【问题讨论】:

    标签: c# .net winforms activex


    【解决方案1】:

    ActiveX控件是线程关联的,只有创建ActiveX控件的线程(通常是主窗口线程)才能调用控件的属性设置/函数调用。否则,控件将崩溃。如果后台工作线程想要通知或回调控制,最好的方法是发布windows消息给控制,让控制创建线程来响应消息并做任何你想做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多