Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CLR如何在线程池线程中运行beginXXX?_C# - Fatal编程技术网

C# CLR如何在线程池线程中运行beginXXX?

C# CLR如何在线程池线程中运行beginXXX?,c#,C#,我试图弄清楚CLR是如何将异步操作BeginXXX放入线程池的队列的。 以及调用哪个线程池的API。 但是我在System.IO.Stream中搜索BeginRead()时没有发现任何东西 和System.Data.Sqlclient.SqlCommand中的BeginExecuteReader(),由Reflector 6执行。许多异步操作使用已打开的操作系统句柄,用于I/O完成端口、重叠操作或包装在托管WaitHandle中的其他操作系统同步对象 在这些情况下,可能是类使用ThreadPoo

我试图弄清楚CLR是如何将异步操作BeginXXX放入线程池的队列的。 以及调用哪个线程池的API。 但是我在System.IO.Stream中搜索BeginRead()时没有发现任何东西

和System.Data.Sqlclient.SqlCommand中的BeginExecuteReader(),由Reflector 6执行。

许多异步操作使用已打开的操作系统句柄,用于I/O完成端口、重叠操作或包装在托管
WaitHandle
中的其他操作系统同步对象

在这些情况下,可能是类使用
ThreadPool.BindHandle
ThreadPool.RegisterWaitForSingleObject
而不是
ThreadPool.QueueUserWorkItem
,以计划在线程池线程上发生完成回调的异步操作