我试图将任务存储在字典中以供以后执行但没有成功:
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
代表它的完成。
关于c# - 如何将任务存储在字典中以便稍后在 C# 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470095/