• 1.初探


    1.线程需要通过委托去开启。

     private static void Main(string[] args)
            {
                //通过委托开启线程
                Func<int, string, int> a = Test;
                //开启新的线程去执行a所引用的函数
                //IAsyncResult 取得当前线程状态
                IAsyncResult ar = a.BeginInvoke(100, "maning", null, null);
    
                //可以认为线程是同时执行的(异步执行)
                Console.WriteLine("main");
                while(ar.IsCompleted == false)
                {
                    Console.Write(".");
                    Thread.Sleep(10);
                }
                int res = a.EndInvoke(ar);
                Console.WriteLine(res);

           bool isEnd = ar.AsyncWaitHandle.WaitOne(1000);//等待1000毫秒,1000毫秒结束,返回true,没结束返回false
                if(isEnd)
                {
                    int res = a.EndInvoke(ar);
                    Console.WriteLine(res);
                }
                Console.ReadKey(); Console.ReadKey(); }
    private static int Test(int i, string name) { Console.WriteLine("Test" + i + " " + name); //当前线程暂停100ms Thread.Sleep(100); return 100; }
    IAsyncResult ar = a.BeginInvoke(100, "maning", null, null);
    ar储存当前线程运行状态


    int res = a.EndInvoke(ar);
    res 取得当前线程运行结果。

    Thread.Sleep(100)当前线程暂停100ms
    ar.AsyncWaitHandle.WaitOne(1000)
    
    
    等待1000毫秒,1000毫秒结束,返回true,没结束返回false,只会等待1000ms。如果执行700ms,等待700ms,若超过1000ms,只会等待1000ms。
     
    
    
    
  • 相关阅读:
    哈希表(python)
    双端循环列表实现栈(python)
    链表实现队列(python)
    循环双端链表(python)
    单链表(python)
    LRU(最近最少使用)(python实现)
    Ajax在Django框架中简单应用2
    图书管理系统增删改查
    Jenkins接入LDAP
    安装python3.6
  • 原文地址:https://www.cnblogs.com/Vincente/p/6912703.html
Copyright © 2020-2023  润新知