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

标签 c# dictionary dynamic

我试图将任务存储在字典中以供以后执行但没有成功:

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/

相关文章:

java - BiMap单个函数将值转换为连接的字符串值?

c - C 中的动态堆栈 [pop crash]

C# 以编程方式创建 xyseries

c# - 在 SortedDictionary 中查找最接近的值

python - 评估 python 中元组的字符串表示形式

android - java.io.IOException : Cannot find PROCESSED_RES output for Main [Dynamic Feature Module] 异常

javascript - Jquery id 选择器变量无法绑定(bind)到 onchange

c# - 如何在 C# 中撤消和重做(富文本框)

c# - 单击 asp.net 后退按钮管理表单数据(通过 Session 或 Viewstate 处理除外)

c# - 从类(class)内部访问类(class)成员