如何将任务存储在字典中以供以后在c#中执行
本文关键字:执行 字典 任务 存储 | 更新日期: 2023-09-27 18:16:45
我正在尝试将任务存储在字典中以供稍后执行,但没有成功:
Dictionary<string, Task<object>> router = new Dictionary<string, Task<object>();
router["xyz"] = functionToLaterExec
async Task<string> functionToLaterExec()
{
return await Task.FromResult("Success!");
}
如果我将函数声明为
string functionToExec()
然后我可以做:
router["xyz"] = new Task<string>(functionToExec);
但是我需要函数是异步的。而且不知道如何调用它。我如何提问:
var t = router["xyz"];
var data = Encoding.UTF8.GetBytes(await t);
没有成功。
谢谢。
如果您希望稍后能够启动异步操作,那么您不想存储Task
,您将希望存储Func<Task>
(或者,在您的情况下,Func<Task<string>>
),以便当您想要启动操作时,您可以调用该函数,生成代表其完成的Task
。