我希望此函数返回结果:
public Task<Item_DataColl> invoke_command_READ(string UCPTName)
{
Item_DataColl res = await Task.FromResult(thread_command_READ_result(UCPTName));
return res;
}
我不明白Task
如何工作以及如何使用它来制作带有结果的线程。你能解释一下吗?
答案 0 :(得分:1)
在您的特定情况下,最好制作方法async
,如下所示:
public async Task<Item_DataColl> invoke_command_READ(string UCPTName)
{
return await thread_command_READ_result(UCPTName);
}
但是,如果你想要返回任务,但不是异步(为什么??),你可以这样做:
public Task<Item_DataColl> invoke_command_READ(string UCPTName)
{
Item_DataColl res = await Task.FromResult(thread_command_READ_result(UCPTName));
return Task.FromResult(res);
}
您可以将Task<T>
视为Thread
的包装,它将在传递给任务的Func
返回结果之前运行(或者,如果Task
,则返回控制)。