#c_sharp
Как-то через раз появляется ошибка: Текущий поток должен быть задан как поток однопоточного контейнера (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); } } }
Ответы
Ответ 1
Thread thread = new Thread(() => Clipboard.SetText(file_track_title.ReadLine())); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join();Ответ 2
[STAThread] static void Main() { ... } Судя по докам, это надо для работы с COM
Комментариев нет:
Отправить комментарий