[英]How to store a Task in a dictionary for later execution in C#
I'm trying to store a Task in a dictionary for later execution with no success: 我正在尝试将Task存储在字典中,以便以后执行但没有成功:
Dictionary<string, Task<object>> router = new Dictionary<string, Task<object>();
router["xyz"] = functionToLaterExec
async Task<string> functionToLaterExec()
{
return await Task.FromResult("Success!");
}
If I declare the function as 如果我将函数声明为
string functionToExec()
Then I can do: 然后我可以做:
router["xyz"] = new Task<string>(functionToExec);
But I need the function to be async. 但是我需要异步的功能。 And don't know how to invoke it.
而且不知道如何调用它。 I've tryed:
我尝试过:
var t = router["xyz"];
var data = Encoding.UTF8.GetBytes(await t);
with no success. 没有成功。
Thanks. 谢谢。
如果您希望以后能够启动异步操作,那么就不想存储Task
,则需要存储Func<Task>
(或者,对于您来说,是Func<Task<string>>
,这样,当您要开始操作时,可以调用该函数,并生成一个代表其完成的Task
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.