【2019】委托/事件/异步/跨线程调用UI控件/多线程(Detegate/Event/Sync/InvokeRequired)

委托/事件/异步/InvokeRequired/MultiThreading (Detegate/Event/Sync/InvokeRequired/MultiThreading )
委托事件
      #region Delegate1
      private void btnExe_Click(object sender, EventArgs e)
      {
          MyClass myObject = new MyClass();
          myObject.WorkCompletedDelegate += TestDelegate;
          myObject.WorkCompleted += TestEvent;
          myObject.WorkCompletedDelegate();

          myObject.Fire();
          myObject.Fier2();
          myObject.WorkCompletedDelegate();
          // myObject.WorkCompleted();  // this line will raise compiling error
      }
      static void TestEvent()
      {
          Console.WriteLine("test event");
      }

      static void TestDelegate()
      {
          Console.WriteLine("test delegate");
      }

      public class MyClass
      {
          public delegate void CompletedEventHandler();

          public event CompletedEventHandler WorkCompleted;
          public CompletedEventHandler WorkCompletedDelegate;

          public event CompletedEventHandler WorkCompleted2;

          public void Fier2()
          {
              WorkCompleted2 = new CompletedEventHandler(TestDelegate2);
              WorkCompleted2.BeginInvoke(null, null);
              //WorkCompleted2(TestDelegate);
          }

          public void TestDelegate2()
          {
              Console.WriteLine("test delegate2");
          }

          public void Fire()
          {
              if (WorkCompleted != null)
              {
                  this.WorkCompleted();
              }

              if (WorkCompletedDelegate != null)
              {
                  this.WorkCompletedDelegate();
              }
          }
      }
      #endregion

Result:
在这里插入图片描述

      #region Delegate2
      private void btnDelegate_Click(object sender, EventArgs e)
      {
          Test obj = new Test();
          obj.print += printout1;      //绑定printout1方法
          obj.print += printout2;      //绑定printout2方法
          obj.start();
      }
      static void printout1()
      {
          Console.WriteLine("输出第一段字符串");
      }
      static void printout2()
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengzhilu000

送人玫瑰,手留余香!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值