c# 간단한 코드 좀 봐주실 수 있나요?

lalupo20의 이미지

namespace SelectFolder
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show(folderBrowserDialog1.SelectedPath + "를 선택하였습니다.");
            }
        }
    }
}

이거 그냥 폼에 버튼 하나 달려있고 누르면 파일탐색기? 뜨는 코드인데

버튼 누르면 포인터만 뱅글뱅글 돌아가고 아무런 반응이 없습니다.

그래서 디버깅해보니까

이프문에서 창하나 뜨면서

System.Threading.ThreadStateException: 'OLE 호출을 수행하려면 현재 스레드를 STA(단일 스레드 아파트) 모드로 설정해야 합니다. 표시된 STAThreadAttribute가 Main 함수에 있는지 확인하십시오. 이 예외는 디버거가 프로세스에 연결된 경우에만 발생합니다.'

라고 나오는데

어떻게 해결해야 되는지 조언 좀 해주실 수 있을까요?

lalupo20의 이미지

메인함수 위에 [STAThread]라고 작성해주면 되는 거군요.

의미는 혼자 찾아보겠습니다.