linux - 在 Unix 上的核心 CLR 中 P/调用和重叠 I/O?

标签 linux async-await .net-core

我知道 .Net Core 可以在 Mac 和 Unix 上运行。

overlapped I/O 这样的 Win32 类发生了什么以及如何I/O request packet翻译成 Unix?

如果我理解正确的话,那些 win32 类和结构是 the basis async/await 与 P/Invoke I/O 指令。

最佳答案

有一个由 CoreCLR 实现的平台抽象层,它使用适当的操作系统功能处理异步 I/O 的实现。例如,在支持 kevent 的平台上(例如 FreeBSD 和 macOS),它们将使用 kqueue 来排队和引发 I/O 回调。这是众多领域之一,但却是开始了解 CoreCLR 并将其与托管实现联系起来的好地方。

https://github.com/dotnet/coreclr/blob/dd1e7ab81221127e47d59052c51c09921007d607/src/pal/src/synchmgr/synchmanager.cpp#L2103

关于linux - 在 Unix 上的核心 CLR 中 P/调用和重叠 I/O?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808446/

相关文章:

c# - azure 上的 CngKey.Import

.net - 找不到库 hostpolicy.dll

ruby - 使用超时 fork 子进程并捕获输出

WPF CosmosDB ReadNextAsync() 在调用 background_worker 时挂起

linux - 无法在linux中编译opencv

c# - 在任务继续中阻止异步 HttpClient 调用时出现死锁

c# - 我无法理解 await/async 究竟是如何工作的

.net - netstandard 库的 Shift-JIS 编码

java - 如果安装新版本的 JDK,运行 Java 进程会发生什么情况?

python - #include <Python.h> - 在 Linux Mint 上终止编译