zoukankan      html  css  js  c++  java
  • 泛型委托+异步回调+超时机制

    写法一:(泛型委托)

           Func<string, object> albumFunC = new Func<string, object>(GetCacheObject);//泛型委托

           object result =albumFunC("参数值");

    写法二: (泛型委托+超时机制)

            Func<string, object> albumFunC = new Func<string, object>(GetCacheObject);/

            IAsyncResult ar= albumFunC.BeginInvoke("参数值", null, null);//此时CLR会打开一个新的线程去异步执行委托的方法   

            //以下语句为等待返回结果的超时机制

            object result=null;
            ar.AsyncWaitHandle.WaitOne(1000, false);//1秒超时
            if (ar.IsCompleted)
            {
                  result = albumFunC.EndInvoke(ar);
            }
            return result;

    写法三:(泛型委托+异步回调)

           Func< string, object > albumFunC = new Func<string,object>(GetAlbumStyle);
           IAsyncResult ar = albumFunC.BeginInvoke("参数值",  new AsyncCallback(CallBackAlbumMethod), albumFunC);//异步回调

           void onComplete(IAsyncResult ar)
           {
                  Func<string, object> andl = (Func<string, object>)ar.AsyncState;
                  object result=andl.EndInvoke(ar);
           }
      

  • 相关阅读:
    leetcode--Remove Duplicates from Sorted Array
    leetcode--Valid Parentheses
    leetcode--Longest Substring Without Repeating Characters
    leetcode--Combination Sum
    leetcode--Valid Sudoku
    java 4对象群体的组织
    java 3 接口与多态&输入输出流
    java 3类的继承
    java 2类与对象[学堂在线]
    计算机网络{网页开发与服务配置}
  • 原文地址:https://www.cnblogs.com/dashi/p/4034703.html
Copyright © 2011-2022 走看看