zoukankan      html  css  js  c++  java
  • 主线程 子线程 调用 ThreadId BeginInvoke调用和Invoke调用

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

            }


        }

  • 相关阅读:
    CF932E Team Work(第二类斯特林数)
    BZOJ 3732: Network(Kruskal重构树)
    BZOJ 2753: [SCOI2012]滑雪与时间胶囊(最小生成树)
    BZOJ 2286: [Sdoi2011]消耗战(虚树+树形dp)
    hdu 4336 Card Collector(状压dp/Min-Max反演)
    BZOJ 3622: 已经没有什么好害怕的了(二项式反演)
    BZOJ 2839: 集合计数(二项式反演)
    CF gym 101933 K. King's Colors(二项式反演)
    BZOJ 1101: [POI2007]Zap(莫比乌斯反演)
    BZOJ 3747: [POI2015]Kinoman(线段树)
  • 原文地址:https://www.cnblogs.com/bawang/p/8808279.html
Copyright © 2011-2022 走看看