다른 쓰레드에서 폼 종료하려 할때 크로스 스레드 뭐라 뜨면서 안될때

델리게이트를 사용하면 됩니당

 

MainFormClose(); 호출하면 OK

        private delegate void MainFormCloseDelegate();
        private void MainFormClose()
        {
            if (InvokeRequired)
            {
                MainFormCloseDelegate del = new MainFormCloseDelegate(MainFormClose_threadSafe);
                this.Invoke(del);
            }
            else MainFormClose_threadSafe();
        }
        private void MainFormClose_threadSafe()
        {
            MessageBox.Show("프로그램 종료");
            this.Close();
        }

+ Recent posts