Страницы

Поиск по вопросам

пятница, 15 февраля 2019 г.

Текущий поток должен быть задан как поток однопоточного контейнера

Как-то через раз появляется ошибка:
Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша функция Main помечена атрибутом STAThreadAttribute.
Что это значит и как исправить? И почему она выскакивает не всегда?
using System; using System.IO; using System.Net; using System.Text;
public class Program { public static void Main() { try { TextReader file_track_title = new StreamReader(@"C:\Users\Administrator\Desktop\AMData\track_title.txt");
System.Windows.Forms.Clipboard.SetText(file_track_title.ReadLine());
file_track_title.Close(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } }


Ответ

Thread thread = new Thread(() => Clipboard.SetText(file_track_title.ReadLine())); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join();

Комментариев нет:

Отправить комментарий