相关疑难解决方法(0)

STAThread失踪了,但它就在那里

这是我尝试在程序中打开OpenFileDialog时收到的错误消息:

"在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式.确保Main函数上标记了STAThreadAttribute.仅当调试器附加到进程时才会引发此异常."

此错误消息的问题是我的Main方法DOES附加了STAThread属性.我不知道如何处理这个问题.如果它已经存在,我怎么能添加一些东西.加倍它并不是一个好选择,我尝试删除它,构建应用程序,添加它并再次构建它没有成功.我只是不明白.

private void btnOldFind_Click(object sender, EventArgs e)
{
     openFileDialog1.Multiselect = false;
     openFileDialog1.FileName = "";
     openFileDialog1.ShowHelp = false;
     openFileDialog1.AutoUpgradeEnabled = true;
     openFileDialog1.InitialDirectory = @"C:\";
     openFileDialog1.Filter = "Microsoft Installer (*.msi)|*.msi|All Files (*.*)|*.* ";
     openFileDialog1.FilterIndex = 1;
     openFileDialog1.RestoreDirectory = true;

     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         textBoxOldInstallation.Text = openFileDialog1.FileName;
     }
}
Run Code Online (Sandbox Code Playgroud)

主要方法是:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
Run Code Online (Sandbox Code Playgroud)

并且没有明确地进行线程化.说实话,这是一个非常基本的计划.

EDIT2 :: …

c#

5
推荐指数
2
解决办法
7302
查看次数

标签 统计

c# ×1