zoukankan      html  css  js  c++  java
  • 线程Task实现异步

    http://www.cnblogs.com/luminji/archive/2011/05/13/2044801.html

    “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。

    所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。 该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。 Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型,如下所示:

     

    delegate int del(int i);
    static void Main(string[] args)
    {
        del myDelegate = x => x * x;
        int j = myDelegate(5); //j = 25
    }

     

    使用空括号指定零个输入参数:

    () => SomeMethod()
     var entitlementTask = new Task<string>(() =>
                {
                    var synchronizeMasterSmartcard = this.synchronizeDataFactory.GetInstance(SynchronizeRange.MasterSmartcard);
                    if (synchronizeMasterSmartcard == null)
                    {
                        return string.Empty;
                    }
    
                    var result = synchronizeMasterSmartcard.Synchronize(new MasterSmartcardPreconditionEntity { PortalUserId = portalUserId });
                    if (!string.IsNullOrEmpty(result))
                    {
                        return result;
                    }
    
                    var synchronizeEntitlement = this.synchronizeDataFactory.GetInstance(SynchronizeRange.NormalEntitlement);
                    return synchronizeEntitlement == null ? string.Empty : synchronizeEntitlement.Synchronize(new NormalEntitlmentPreconditionEntity { PortalUserId = portalUserId, SynchronizeFlag = SynchronizeFlag.Save });
                });
    
                entitlementTask.StartAndContinueWith();
                return string.Empty;

    所以()=>{ }相当于创建了一个委托。

    delegate void TestDelegate(strings); 
    TestDelegate testDelC = x => { Console.WriteLine(x); };

    只有在 Lambda 有一个输入参数时,括号才是可选的;否则括号是必需的。 两个或更多输入参数由括在括号中的逗号分隔: 

    class Program
        {
            delegate void myDelegate(string str,string str2);
            static void Main(string[] args)
            {
                myDelegate dDelegate = (x,y) => { Console.WriteLine("输出{0}+{1}",x,y); };
                dDelegate("我是x","yy");
                Console.ReadLine();
            }
        }

     

  • 相关阅读:
    HttpRunnerManager使用(一)
    python入门(七):字符串
    python入门(六):函数
    python入门(五):切片列表元祖字典
    python入门(四):字符串、编码、random
    HttpRunnerManager安装部署
    python入门(三):循环
    python入门(二):isinstance、内置函数、常用运算等
    js 去掉空格
    JQ赋值
  • 原文地址:https://www.cnblogs.com/mmnyjq/p/2631326.html
Copyright © 2011-2022 走看看