【问题标题】:ActiveX control cannot be instantiated because the current thread is not in a single-threaded apartment无法实例化 ActiveX 控件,因为当前线程不在单线程单元中
【发布时间】:2009-12-04 13:31:24
【问题描述】:

由于主题是自我解释,我需要帮助。

我正在编写一个在启动时显示启动画面的小工具。 初始屏幕是一个表单。当上面只有一个 Button 控件时,它工作正常。 但是当我删除它并在其上放置一个 WebBrowser 控件时,它会引发上述异常。

提前致谢。

【问题讨论】:

    标签: .net winforms multithreading


    【解决方案1】:

    您在使用 WinForms 吗?如果是这样,请尝试将 [STAThread] 属性放在类定义的顶部,看看会发生什么:

    命名空间 WindowsFormsApplication1 { [STA线程] 公共部分类Form1:表格 {

    【讨论】:

    • 它说我只能将此属性与方法定义一起使用,而不是类声明
    • 我的错误。它实际上应用于您的应用程序类的 Main 函数
    • 如果你在你的程序中做线程,我必须按如下方式切换://必须更改此线程以避免错误://“不支持在 sta 线程上等待多个句柄" [MTAThread()] 使用此语句:ThreadPool.QueueUserWorkItem(webSvc.ThreadPoolCallback, i);
    猜你喜欢
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2011-01-13
    相关资源
    最近更新 更多