C#匿名代理的使用

 private delegate void CrossThreadOperationControl();


           // 将代理实例化为一个匿名代理 

            CrossThreadOperationControl CrossDelete = delegate()

            {

                MessageBoxButtons buttons = MessageBoxButtons.OKCancel;

                DialogResult dr = MessageBox.Show("Master,please to have a rest!", "Interrupt", buttons);

                if (dr == DialogResult.OK)

                {

                    BlockInput(true);

                    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

                    myTimere.Stop();

                    System.Threading.Thread.Sleep(mySpantime);

                    myTimere.Start();

                    BlockInput(false);

                }

                else

                {

                    myWatch.Stop();

                    MessageBox.Show("Time setting be cancled!");

                    Application.Exit();

                }

            };

            this.Invoke(CrossDelete);

方法2


        this.Invoke(new MethodInvoker(delegate()

                {

                MessageBoxButtons buttons = MessageBoxButtons.OKCancel;

                DialogResult dr = MessageBox.Show("Master,please to have a rest!", "Interrupt", buttons);

                if (dr == DialogResult.OK)

                {

                    BlockInput(true);

                    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

                    myTimere.Stop();

                    System.Threading.Thread.Sleep(mySpantime);

                    myTimere.Start();

                    BlockInput(false);

                }

                else

                {

                    myWatch.Stop();

                    MessageBox.Show("Time setting be cancled!");

                    Application.Exit();

                }

                }));
原文地址:https://www.cnblogs.com/maijin/p/2826465.html