• 使用Thread包装类进行多线程操作


    Java中使用接口的方式,实现方法的回调机制。而在.NET里,我们通过代理,能够很轻松的实现方法的回调。

    class Class1
     {

      [STAThread]
      static void Main(string[] args)
      {
       Class1 c = new Class1();
       ThreadWrapper tw = new ThreadWrapper(new Callback(c.PrintResult), 100);
       // 线程开始
       tw.Start();
       Console.ReadLine();
      }
                      
       // 打印结果,用于回调
      public void PrintResult(int result)
      {
       Console.WriteLine("Result:   " + result.ToString());
      }
     }

     // 回调代理
     public delegate void Callback(int n);

     class ThreadWrapper
     {  
      public readonly Thread mThread;

      private Callback callback;

      private int n;

       // 参数1:用于回调的代理
       // 参数2:需要计算的值

      public ThreadWrapper(Callback callback, int arg)
      {
          this.callback = callback;
          ThreadStart myThreadDelegate = new ThreadStart(this.Run);
          this.mThread = new Thread(myThreadDelegate);
          this.n = arg;
      }

     // 线程的对外接口
      public void Start()
      {
          this.mThread.Start();
      }

      // 需要在线程里调用的方法
      public void Run()
      {
          int result = this.Caculate(this.n);
          callback(result);
      }

      private int Caculate(int n)
      {
          return n*100;
      }
     }
  • 相关阅读:
    eslint 屏蔽html的检查
    css 自定义悬浮窗写法
    echarts象形图图例显示问题
    win10上rocketMQ的部署过程
    死锁以及如何避免死锁
    volatile的一个例子-通俗易懂
    Java四种引用类型
    记录下:安全|API接口安全性设计(防篡改和重复调用)
    了解聚集索引,非聚集索引,联合索引,索引覆盖
    mybatis 查询树形结构
  • 原文地址:https://www.cnblogs.com/top5/p/1550891.html
Copyright © 2020-2023  润新知