码迷,mamicode.com
首页 > 编程语言 > 详细

多线程和异步

时间:2019-01-09 23:32:44      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:state   一点   结束   add   ack   code   异步   void   函数   

1、简单的一般线程

            Func<int, int, int> Add = (a, b) => a + b;

            Thread t = new Thread(() =>
            {
                Console.WriteLine(Add(3,4));
            });
            t.IsBackground = true;
            t.Start();

 

2、线程池运行线程

            Func<int, int, int> Add = (a, b) => a + b;
             
            ThreadPool.QueueUserWorkItem(s =>
            {
                Console.WriteLine(Add(4, 5));
            });

 

3、异步

(1)简单一点,在主线程中调用异步,然后在主线程中处理结果

            Func<int, int, int> Add = (a, b) => a + b;

            var result = Add.BeginInvoke(3, 4, null, null);

            Console.WriteLine(Add.EndInvoke(result));

(2)在异步中执行结束后调用函数,并异步中执行处理结果。

 Func<int, int, int> Add = (a, b) => a + b;
 Add.BeginInvoke(3, 4, myCallBack, Add);
        private void myCallBack(IAsyncResult ar)
        {
            var del = (Func<int, int, int>)ar.AsyncState;
            var res=del.EndInvoke(ar);
            Console.WriteLine(res);
        }

 

多线程和异步

标签:state   一点   结束   add   ack   code   异步   void   函数   

原文地址:https://www.cnblogs.com/lunawzh/p/10247297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!