美文网首页
如果你的公司用的VS比较简陋而无法使用Async,Await

如果你的公司用的VS比较简陋而无法使用Async,Await

作者: 小狼在IT | 来源:发表于2018-05-10 10:10 被阅读0次

    然而你又想用Task提高程序效率。

    注意:如果你们的开发工具已经可以用上Async,Await,就别读下去了,没意义。

    原则上可以这样:

        public static int doSomething(string a,string b,string c,string d,string e)
        {
            //do something
            return 1;
        }
    

    然后调用:

            Task<int> t3 = new Task<int>(() => doSomething("","","","",""));
            t1.Start();
    

    最后在任意需要返回值的地方:

            int a = t3.Result;
    

    另外,我有个简单点的办法:

    设计一个方法(用来做代理):

        public static Task<T> delegateTask<T>(Func<T> ac)
        {
            Task<T> t1 = new Task<T>(() =>
            {
                T iTest = ac();
                return iTest;
            });
            t1.Start();
            return t1;
        }
    

    然后用这个代理调用:

       Task<int> t3 = delegateTask<int>(() => doSomething("", "", "", "", ""));
        int a = t3.Result;
    

    也就稍微少写了一点点代码。

    相关文章

      网友评论

          本文标题:如果你的公司用的VS比较简陋而无法使用Async,Await

          本文链接:https://www.haomeiwen.com/subject/tvxzrftx.html