gpt4 book ai didi

c# - 为什么使用 APM 而不是使用单独的线程?

转载 作者:行者123 更新时间:2023-11-30 19:34:58 26 4
gpt4 key购买 nike

如果我想读取或写入文件,我可以使用 stream.BeginRead 和 stream.EndRead,但这需要回调和大量使用异步编程模型的丑陋、复杂的代码。 p>

为什么我要使用这些异步 IO 方法(在幕后使用 .NET 线程池)而不是以同步方式编写相同的代码,然后将 that 传递给线程池。 (而不是用回调来分割我的方法。)

更新:

一些(良好的)响应表明使用 APM 使我无需创建线程 - 我同意这一点,因为每个新线程都有自己的 2MB 堆栈。但是“BeginRead”和“Endread”在哪里执行?线程池?重用已分配的线程是唯一的好处吗?

最佳答案

首先,您还应该查看 Event-based APM .

要回答您的问题,您可能正在考虑使用单独的线程并进行同步调用。另一个线程将阻塞等待调用完成。

使用 APM,根本没有线程阻塞。线程池没有抽取。这对于 ASP.NET 等服务器应用程序尤其重要,因为这意味着阻塞线程不会阻止处理请求。

关于c# - 为什么使用 APM 而不是使用单独的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/736809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com