종료버튼 눌렀을 때 메시지 박스가 뜨면,


1000ms(1s)후에 자동 종료되는 형태이다.


다른 방법도 있지만 Action으로 사용 하는 방법


private void MessageBoxFormClosing(Form fm)
{
    if (fm.InvokeRequired)
    {
        Action<Form> closeform = new Action<Form>(MessageBoxFormClosing);
        this.Invoke(closeform, fm);
    }
    else
    {
        if (fm != null)
            fm.Close();
    }
}
 
private void button1_Click(object sender, EventArgs e)
{
    Form msgfm = new Form();
    Action clse = new Action(() = >
    {
        while (true)
        {
            System.Threading.Thread.Sleep(1000);
            break;
        }
        MessageBoxFormClosing(msgfm);
    });
    clse.BeginInvoke(ir = > clse.EndInvoke(ir), null);
    MessageBox.Show(msgfm, "닫혀~");
}


블로그 이미지

SherryBirkin

,