【问题标题】:Write an async method that doesn't call another async method编写一个不调用另一个异步方法的异步方法
【发布时间】:2013-03-19 03:38:25
【问题描述】:

我知道如何编写调用其他异步方法的异步方法,例如DownloadFileAsync 或ReadAsStringAsync。如何编写一个不使用框架内置异步功能的程序?

【问题讨论】:

  • 如果方法没有做任何异步工作,你为什么还要考虑让它异步?
  • 如果你想等待它完成,你可以只使用任务并等待它。
  • @ barisa-puter 我想编写自己的代码来执行异步工作并且不依赖于内置方法。 @ justin-pihony 但是我到底如何将最后一个任务写到调用链中呢?
  • 嗯,这取决于谁在做这项工作。您的方法是异步的,因为工作是由同一进程中的另一个线程完成,还是由不同进程中的另一个线程完成,或者工作是在日本的机器上完成,还是工作实际上是写入 I/O 设备, 或者是什么?或者也许工作被撕成小块,每一块都在主线程上完成?有很多方法可以实现异步。你想做什么?

标签: c# async-await


【解决方案1】:

我假设您的意思是要实现自己的异步功能。异步调用方法只是意味着调用线程没有被阻塞。这很有用的一种情况是当您希望在某些后台操作完成时继续工作。正如您所提到的,框架中有各种可用的方法可以异步执行(通常使用约定 MethodNameAsync)。要启动您自己的方法之一,您可以启动自己的线程并让它执行您的代码。

例如。 TaskFactory.StartNew 可用于通过传递 Action(委托)来启动您的代码。

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多