带有 Func<Task> 或 Func<Task<T>> 参数的同步 void 方法实际上有用吗?

金正恩

我正在向我的朋友教授 async-await 关键字,到目前为止,我给他们提供了一些示例,如下所示。

static async Task Do(Func<Task> job)
{
    // some algorithm depends on job parameter.
    await job();
} 

我认为这个例子在很多场景中都很实用。

问题

使用带有类型Func<Task>参数的 void 方法有什么用处Func<Task<T>>吗?就我而言,这种方法的存在确实有意义,因为不推荐阻塞异步方法。任何意见总是受欢迎的!

斯蒂芬·克利里

使用带有类型Func<Task>参数的 void 方法有什么用处Func<Task<T>>吗?

是的。这将是一种与该委托同步执行某些操作的方法。它不会直接执行委托。

想到的一个例子是一种Add异步工作队列的方法。委托将在“队列运行器”代码中的其他地方执行。向队列添加委托将是一个同步操作,即使委托本身是异步的。这是一个例子

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有参数的通用Func

来自分类Dev

如何使用Func <Task <T >>语法?

来自分类Dev

类中带有std :: bind(func,this)的std :: packaged_task

来自分类Dev

类内带有std :: bind(func,this)的std :: packaged_task

来自分类Dev

如何将委托`Func<T1, Func<T2, Task<TResult>>>` 转换为`Func<T1, Task<Func<T2, TResult>>`?

来自分类Dev

带有参数IQueryable <T>和Expression <Func <T,T >>的.net通用方法

来自分类Dev

将Func <T,T>动作用作带有<T>的函数的参数,以及如何编写主体?

来自分类Dev

Actor计时器-注册计时器参数-为什么使用Func <object,Task>而不选择Func <Task>

来自分类Dev

设置模拟类方法以使用Moq执行Func <Task>参数

来自分类Dev

Func <void>作为输入参数

来自分类Dev

如何等待Func <Task <string >>?

来自分类Dev

返回using块中间的Func <Task>

来自分类Dev

将lambda异步到Expression <Func <Task >>

来自分类Dev

如何等待Func <Task <string >>?

来自分类Dev

重构两个相同的函数,分别接收回调函数Func <Task <T >>和Func <T>

来自分类Dev

与不使用带有Expression <Func <>> []的参数等效?

来自分类Dev

具有非固定类型参数的func

来自分类Dev

具有Action和Func参数的歧义

来自分类Dev

具有Action和Func参数的歧义

来自分类Dev

Func <T,TResult>访问参数

来自分类Dev

调用Func <T1,T2,T3>有哪些可选参数?

来自分类Dev

有没有一种方法可以避免对每个Func参数计数使用Func <T,...>参数重载方法

来自分类Dev

当object是Task <Something>时获取Func <object>的结果

来自分类Dev

在超时检查中获取 Func<Task<IResponse>> 的结果

来自分类Dev

了解void func(A())

来自分类Dev

使用带有参数的异步Task方法注册新的pageasynctask

来自分类Dev

使用带有参数的异步Task方法注册新的pageasynctask

来自分类Dev

是否有可能使C#异步方法返回类型不是Task <T>或void?

来自分类Dev

为什么func()和func(void)不同

Related 相关文章

  1. 1

    带有参数的通用Func

  2. 2

    如何使用Func <Task <T >>语法?

  3. 3

    类中带有std :: bind(func,this)的std :: packaged_task

  4. 4

    类内带有std :: bind(func,this)的std :: packaged_task

  5. 5

    如何将委托`Func<T1, Func<T2, Task<TResult>>>` 转换为`Func<T1, Task<Func<T2, TResult>>`?

  6. 6

    带有参数IQueryable <T>和Expression <Func <T,T >>的.net通用方法

  7. 7

    将Func <T,T>动作用作带有<T>的函数的参数,以及如何编写主体?

  8. 8

    Actor计时器-注册计时器参数-为什么使用Func <object,Task>而不选择Func <Task>

  9. 9

    设置模拟类方法以使用Moq执行Func <Task>参数

  10. 10

    Func <void>作为输入参数

  11. 11

    如何等待Func <Task <string >>?

  12. 12

    返回using块中间的Func <Task>

  13. 13

    将lambda异步到Expression <Func <Task >>

  14. 14

    如何等待Func <Task <string >>?

  15. 15

    重构两个相同的函数,分别接收回调函数Func <Task <T >>和Func <T>

  16. 16

    与不使用带有Expression <Func <>> []的参数等效?

  17. 17

    具有非固定类型参数的func

  18. 18

    具有Action和Func参数的歧义

  19. 19

    具有Action和Func参数的歧义

  20. 20

    Func <T,TResult>访问参数

  21. 21

    调用Func <T1,T2,T3>有哪些可选参数?

  22. 22

    有没有一种方法可以避免对每个Func参数计数使用Func <T,...>参数重载方法

  23. 23

    当object是Task <Something>时获取Func <object>的结果

  24. 24

    在超时检查中获取 Func<Task<IResponse>> 的结果

  25. 25

    了解void func(A())

  26. 26

    使用带有参数的异步Task方法注册新的pageasynctask

  27. 27

    使用带有参数的异步Task方法注册新的pageasynctask

  28. 28

    是否有可能使C#异步方法返回类型不是Task <T>或void?

  29. 29

    为什么func()和func(void)不同

热门标签

归档