线程开启方式_异步委托

来源:互联网 发布:python except break 编辑:程序博客网 时间:2024/06/15 23:02
线程的初步学习<11/9/2017>using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;namespace 线程{    class Program    {        //一般我们会为比较耗时的操作 开启单独的线程去执行,比如下载操作        static int Test(int i, string str)//static        {            Console.WriteLine("test" + i + str);            Thread.Sleep(1);//线程休眠(暂停线程的执行)单位ms            return 100;        }        static void Main(string[] args)//在main线程中执行 一个线程里面语句的执行 是从上到下的        {            //1,通过委托 开启一个线程            Func<int, string, int> a = Test;            IAsyncResult ar = a.BeginInvoke(100, "MaximilianLiu", null, null);//开启一个新的线程去执行 a所引用的方法            //IAsyncResult 可以取得当前线程的状态            //可以认为线程是同时执行的(异步执行)            Console.WriteLine("main");            while (ar.IsCompleted==false)//如果当前线程没有执行完毕            {                Console.Write("$");                //Thread.Sleep(10);//控制子线程的检测频率            }            int res=a.EndInvoke(ar);//取得异步协程的返回值            Console.WriteLine(res);            Console.ReadKey();        }    }}


原创粉丝点击