【问题标题】:internals of "Wait", "Pulse", "PulseAll"“Wait”、“Pulse”、“PulseAll”的内部结构
【发布时间】:2009-09-15 02:17:09
【问题描述】:

由于“Wait”、“Pulse”、“PulseAll”方法没有 C# 源代码。有人有他们的 IL 代码吗?如果您知道内部数据结构会很好。

【问题讨论】:

  • 全面了解监视器的实际工作原理
  • 那么您需要阅读本机 C++ 源代码,正如我在回答中所说的那样。
  • 正在下载...如果您的计算机中有 C++ 代码,您可以粘贴它吗?
  • 要了解这些工作原理,只需查看任何 条件变量 实现即可。

标签: c# concurrency


【解决方案1】:

由于他们没有来源,他们也没有 IL。

这些方法是在运行时内用原生 C++ 编写的;这就是[MethodImplAttribute(MethodImplOptions.InternalCall)] 的意思。

要查看此类方法的来源,请查看RotorMono

编辑:要查找与Rotor 中的extern 声明相对应的C++ 代码,请查看clr\src\ecall.cpp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多