Peter D Ответов: 1

[Справка] Ошибка потока в C#


Привет всем, я новичок в C#. У меня есть функция вызова AutoCompleteCBO для автозаполнения combobox ниже. Но когда я вызываю эту функцию в событии загрузки формы, система показывает сообщение: Текущий поток должен быть установлен в режим single thread apartment (STA), прежде чем можно будет выполнять вызовы OLE. Убедитесь, что ваша основная функция помечена атрибутом STAThreadAttribute. Я уже пробовал добавить [STAThread] в верхней части main() в Program. cs, но все еще есть эта ошибка. Пожалуйста, помогите мне.

<pre>private void AutoCompleteCBO(ComboBox cbo, DataTable dt, string rowName)
        {
            
                AutoCompleteStringCollection auto = new AutoCompleteStringCollection();
                cbo.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                cbo.AutoCompleteSource = AutoCompleteSource.CustomSource;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    auto.Add(dt.Rows[i][rowName].ToString());
                }
                cbo.AutoCompleteCustomSource = auto;    
           
        }


Что я уже пробовал:

I already tried add [STAThread] on the top of the main() in Program.cs 

1 Ответов

Рейтинг:
0

OriginalGriff

Предположим, что ваш метод выполняется из потока, отличного от потока пользовательского интерфейса, - либо вызовите любой доступ к элементам управления пользовательского интерфейса, таким как поле со списком, либо переместите этот код обратно в основной поток.