Ошибка при попытке скопировать строку в буфер обмена

Я пробовал этот код:

Clipboard.SetText("Test!");

И я получаю эту ошибку:

Текущий поток должен быть установлен в режим однопоточной квартиры (STA) до того, как вызовы OLE могут быть сделаны. Убедитесь, что ваша функция Main имеет STAThreadAttribute, отмеченную на ней.

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

Ответ 1

Поместите [STAThread] над вашим основным методом:

[STAThread]
static void Main()
{
}

Ответ 2

Вам нужно вызвать этот метод специально, потому что он использует какой-то унаследованный код. Попробуйте следующее:

Thread thread = new Thread(() => Clipboard.SetText("Test!"));
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start(); 
thread.Join(); //Wait for the thread to end