System.Threading.ThreadStateException: как ее решить? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть приложение Windows Forms, чтобы открыть диалоговое окно файлов, а затем просмотреть файлы XML и XLSX в формате datagridview. Я написал следующий код: мой код в порядке или мне нужно сделать что-то еще?

namespace MyFirstWindos
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            openFD.InitialDirectory = "C:";
            openFD.Title = "Insert an File";
            openFD.FileName = "";
            openFD.Filter = "XML Files |*.xml| XLSX Files |*.xlsx ";
            if (openFD.ShowDialog() == DialogResult.OK)
            {
                DataSet ds = new DataSet();
                ds.ReadXml(openFD.FileName);
                dataGridView1.DataSource = ds.Tables[0];
            }
            else
            {
                MessageBox.Show("Operation Cancelled");
            }
        }
    }
}


namespace MyFirstWindos
{
    public static class Program
    {
        public static void Main()
        {
            Compare_D_A d_A = new Compare_D_A();
            d_A.CompareD_A();
            // Compare_D_R d_R = new Compare_D_R();
            //  d_R.compareD_R();   
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

У меня есть это исключение

"System.Threading.ThreadStateException: 'Текущийпоток должен быть установлен в режим однопотокового хранения (STA), прежде чем могут быть выполнены вызовы OLE. Убедитесь, что основная функция помечена как STAThreadAttribute.

Это исключение активируется только в том случае, если связана программа устранения неполадокк процессу, в этой строке в моем коде if (openFD.ShowDialog() == DialogResult.OK).

Как я могу это исправить и что это значит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...