gpt4 book ai didi

c# - 当我调用 BeginXXX() 时,CLR 何时创建 IO 线程

转载 作者:太空狗 更新时间:2023-10-30 01:19:00 25 4
gpt4 key购买 nike

假设我调用 HttpWebRequest.BeginGetRequestStream() 方法。

我知道这个方法是异步的,当它完成时,应该调用一个回调方法。

我非常确定的是,当调用回调方法时,CLR 会创建一个 I/O 线程,这个 I/O 线程会执行回调。

我不确定的是,当我调用 HttpWebRequest.BeginGetRequestStream() 时,是否有任何由 CLR 创建的 I/O 线程?或者只是创建一个工作线程来将请求发送到设备?

最佳答案

Async IO is thread-less.没有线程被创建或阻塞。这就是使用异步 IO 的全部要点!取消阻塞一个线程并阻塞另一个线程对您有什么帮助?

其内部结构已被讨论过多次。基本上,操作系统会在 IO 完成时通知 CLR。这会导致 CLR 将您指定的完成回调排队到线程池中。

关于c# - 当我调用 BeginXXX() 时,CLR 何时创建 IO 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24801413/

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