繁体   English   中英

c# Task.Run 语法

[英]c# Task.Run Syntax

我想在单独的线程上运行 listOrders() 并使其可等待。 我有一种这种形式的方法,可以编译并正常工作

private Task<ClearedOrdersReport> listOrdersAwaitable(int a, int b)
{
    Task<ClearedOrdersReport> t = Task.Run(() =>
       listOrders(a, b));
    return t;
}

我现在想在 listOrders() 调用之前添加第二行来执行。 我认为将单行 lambda 更改为块样式 lambda 是微不足道的,但我无法弄清楚让它编译的正确语法是什么? 我可能遗漏了一些明显的东西,但任何帮助将不胜感激。 谢谢

您应该使用语句 lambda并返回 listOrders 的结果。

 private Task<ClearedOrdersReport> listOrdersAwaitable(int a, int b)
 {
        Task<ClearedOrdersReport> t = Task.Run(() => {
           //add your second line here. 
           return listOrders(a, b);
        });
        return t;
 }

关于您尝试对 async/await 元素执行的操作存在一些问题,但是其中一个调用两个很多事情的一个是使用辅助方法:

listOrders(a, b));

可以变成

DoWork(a,b);

接着

ClearedOrdersReport DoWork(int a, int b)
{
 ...
 return listOrders(a, b); 
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM