その価値のために、この問題はMono では発生しません。
[mono] /tmp @ dmcs par.cs
[mono] /tmp @ mono ./par.exe
生成された MSIL を比較できるように、Windows でコンパイルされたバイナリはありますか? これがライブラリのみの問題であるとは確信が持てず、興味があります:)
IL の比較は少し面倒だったので、両方のプラットフォームで両方のバイナリを試してみることにしました。これをテストするためだけに、古い Windows 仮想マシンを復活させました :)
VS でコンパイルされたバイナリを Mono で実行することは問題ありません。2.10.1 (http://www.go-mono.com/mono-downloads/download.html) を使用して Windows で試すことができますが、わずか 77.4Mb :)
( Linux でカスタム ビルドの mono 2.11 を使用したため、機能のサポートがまだ完了していない可能性があります)
\ run on platform: MS.Net 4.0 Mono 2.1x
built on: -------------+----------------------------------------
Visual Studio | deadlock no deadlock
|
MonoDevelop | deadlock no deadlock
また、Windows で実行している場合、CTRL-C でロックを解除できることにも気付きました。これにさらにいくつか見つけたら投稿します。
更新 2
さて、Mono をインストールすると、Windows でも VSExpress をインストールします。mono のインストールは 4 分で完了し、結果は次のとおりです。
C:\Users\Seth>"c:\Program Files (x86)\Mono-2.10.1\bin\mono.exe" ConsoleApplication2.exe
C:\Users\Seth>
デッドロックはありません:)残っているのは、VSExpressがインストールされるのを(永遠に)待って、デバッグツールをインストールすること(不明)と、それに亀裂が入ること(おそらく深夜まで)だけです。また後でな