• 选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。


    异常:

    在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

    方法1:

    class Program
        {
            /// <summary>
            /// 图片资料文件同步
            /// </summary>
            /// <param name="args"></param>
             [STAThread]   //加这个属性,创建并进入单元
            static void Main(string[] args)
            {
                Form1 f1 = new Form1();
                f1.ShowDialog();
                Console.Read();
            }
    
            public static void f1()
            {
                Form1 f1 = new Form1();
                f1.ShowDialog();
            }
        }

    方法2:

    class Program
        {
            /// <summary>
            /// 图片资料文件同步
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                Thread newThread = new Thread(f1);
                //newThread.SetApartmentState(ApartmentState.MTA); 
                newThread.SetApartmentState(ApartmentState.STA);//设置这个参数,指示应用程序的COM线程模型 是 单线程单元
                newThread.Start();
                Console.Read();
            }
    
            public static void f1()
            {
                Form1 f1 = new Form1();
                f1.ShowDialog();
            }
        }
  • 相关阅读:
    区块链是怎么运行的
    区块链技术到底是什么鬼(二)
    区块链技术到底是什么鬼(一)
    关于SetTimer间隔小于OmTimer执行时间的问题
    区块链
    浏览器原生 form 表单POST 数据的两种方式
    动态调用dll遇到的问题
    转-tcp建立和释放详解
    浏览器使用ActiveX控件
    C可变参数函数 实现
  • 原文地址:https://www.cnblogs.com/x-poior/p/6210809.html
Copyright © 2020-2023  润新知