简体   繁体   English

如何将任务存储在字典中以便以后在C#中执行

[英]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.

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