.NET Core:为什么WaitHandle.SignalAndWait在Linux上抛出PlatformNotSupportedException

时间:2018-02-12 13:16:24

标签: c# linux synchronization .net-core

有谁知道为什么WaitHandle的方法 public static bool SignalAndWait(WaitHandle toSignal, WaitHandle toWaitOn, TimeSpan timeout, bool exitContext)在Linux上抛出PlatformNotSupportedException?

同样有助于了解是否存在任何类似情况(除了后续两次调用toSignal.Set + toWaitOn.WaitOne)。

1 个答案:

答案 0 :(得分:1)

让我们看一下源代码here

throw new PlatformNotSupportedException(SR.Arg_PlatformNotSupported); // https://github.com/dotnet/coreclr/issues/10441

它链接的问题是coreclr #10441。这包含一些见解:

  

我们认为这可以在Unix上实现,但由于API存在缺陷且使用率极低,因此它的优先级较低。

     

我们......确定当时不值得做。

     

我希望它很少使用

所以看起来开发人员给它一个低优先级(因为他们认为这是一个糟糕的API并且使用率很低)并且没有实现它。如果你在coreclr中提交了一个错误,那就会向他们提供使用数据,并可能说服他们这个API值得完全实现。