zoukankan      html  css  js  c++  java
  • 自定义Func方法支持out,ref参数

    默认的Func不支持Out,ref类型的参数,所以需要自定义个delegate func来满足需求。具体代码如下

    public delegate TResult FuncEX<T1, T2, T3, T4, T5, out TResult>(T1 obj1, T2 obj2, out T3 obj3, out T4 obj4, ref T5 obj5);
        public void ContractFileDownload_DownloadPurOrder()
        {
            decimal seqID = Request["ID"].ExToDecimal();
            decimal supplierID = Request["SupplierID"].ExToDecimal();
    
            string msg = "";
            string fileUrl, filePath;
           HttpContext MainthreadContext = HttpContext.Current;
            FuncEX<decimal, decimal, string, string, HttpContext, string> dl = PurOrder;
            dl.BeginInvoke(seqID, supplierID, out fileUrl, out filePath, ref MainthreadContext, TakesAWhileCompleted, dl);
    
        }
    
        public string PurOrder(decimal seqID, decimal supplierID, out string fileUrl, out string filePath,ref HttpContext context)
        {
            using (var bllProvider = BLLProviders.Create())
            {
                return bllProvider.Cas_invest_contractBLL.downLoad_PurOrder(seqID, supplierID, out fileUrl, out filePath,ref context);
            }
        }
    
        public void TakesAWhileCompleted(IAsyncResult ar)
        {
            if (ar != null)
            {
                string fileUrl, filePath;
                HttpContext currentContext=null;
                FuncEX<decimal, decimal, string, string, HttpContext, string> dl = (FuncEX<decimal, decimal, string, string, HttpContext, string>)ar.AsyncState;
                string msg = dl.EndInvoke(out fileUrl, out filePath, ref currentContext, ar);
                
            }
        }
  • 相关阅读:
    PlayerPrefs存储Vector3等结构数据
    Kafka集群部署及測试
    火云开发课堂
    Thinking in Java:容器深入研究
    求int型数据在内存中存储时1的个数
    JAVA 几种多线程的简单实例 Thread Runnable
    Android利用Intent与其它应用交互
    kernel
    Azure DocumentDB 正式发布
    在公有云平台体验开源方案的自动部署
  • 原文地址:https://www.cnblogs.com/colder/p/11790809.html
Copyright © 2011-2022 走看看