C#匿名代理的使用

来源:互联网 发布:daedalus软件怎么用 编辑:程序博客网 时间:2024/06/05 08:02

方法1

 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();

                }

                }));

 

原创粉丝点击