BeginInvoke是异步线程执行

class Program
    {
        static int TakeWhile() {
            int threadid = Thread.CurrentThread.ManagedThreadId;
            Console.WriteLine("子线程ID:"+threadid);//每次运行不一样 测试为6
            Thread.Sleep(2000);
            return 5;
       
        }

static void Main(string[] args)
        {
            int threadmain = Thread.CurrentThread.ManagedThreadId;
            Console.WriteLine("主线程ID:" + threadmain);//每次运行不一样 测试为8
            Func<int> f1 = TakeWhile;
           IAsyncResult ar= f1.BeginInvoke(null,null);
            while(!ar.IsCompleted)
            {
                Console.Write("...");
               Thread.Sleep(1000);
               
            }
            int result=f1.EndInvoke(ar);
            Console.WriteLine(result);//5 EndInvoke会返回异步回调函数的值
            Console.WriteLine("结束");
            Console.Read();

}

invoke 调用是同步执行 同一个线程执行

class Program
    {
      public  static voidTakeWhile() {
            int threadid = Thread.CurrentThread.ManagedThreadId;
            Console.WriteLine("子线程ID:"+threadid);//每次运行不一样 测试为1
            Thread.Sleep(2000);
        }

static void Main(string[] args)
        {
            int threadmain = Thread.CurrentThread.ManagedThreadId;
           // Console.WriteLine(Thread.CurrentThread.GetHashCode());当前framework中线程这个值与ManagedThreadId一致
            Console.WriteLine("主线程ID:" + threadmain);//每次运行不一样 测试为1           
            typeof(ConsoleApplication2.Program).GetMethod("TakeWhile").Invoke(null, null);
            Console.WriteLine("结束");
            Console.Read();

}

}

最新文章

  1. Math Start!
  2. 038. asp.netWeb用户控件之六实现日期选择的用户控件
  3. [转]结合轮廓显示,实现完整的框选目标(附Demo代码)
  4. IOS开发: 为UIImageView添加点击事件
  5. CentOS 6.7安装Tomcat 7
  6. seq2sparse(4)之PartialVectorMergeReducer源码分析
  7. UESTC_秋实大哥去打工 2015 UESTC Training for Data Structures&lt;Problem G&gt;
  8. HDU 5805 - NanoApe Loves Sequence (BestCoder Round #86)
  9. Drupal7模块multiselect使用
  10. POJ3169差分约束系统
  11. Vue.js之深入浅出
  12. You don&#39;t know js
  13. AMH 5.X下安装 Flarum
  14. MyBatis-plus二级缓存使用
  15. ESP8266莫名重启或者死机问题
  16. 阿里云 SSL 证书 总结
  17. selenium 常用操作
  18. 【pyqtgraph】pyqtgraph-鼠标互动
  19. webstorm 2017激活
  20. git 学习小记之记住https方式推送密码

热门文章

  1. What?JMeter做UI自动化!
  2. Atcoder题解:Arc156_c
  3. 实现 JSON 高亮
  4. cximage总括功能讲解
  5. hdu-2544 最短路(SPFA)
  6. 【Nginx】优化,增加线程
  7. zabbix-agent2安装问题汇总
  8. .Net 6.0:WebAPI配置跨域
  9. element的upload手动submit前动态设置上传请求地址
  10. dfs-入门模板