ポータブルクラスライブラリプロジェクトでInterlockedクラスのメソッドを使用したいと思います。また、MSDN(ここ)によると、Interlockedクラスはポータブルフレームワークでサポートされています。残念ながら、Interlockedメソッドの一部しか使用できないようです。たとえば、「読み取り」もExchange(Int64、Int64)も見つかりません。誰かが彼らがどこかに隠れているのか、それとも単に実装されていないのか知っていますか?もしそうなら、なぜですか?
1 に答える
ポータブル ライブラリは、ターゲットとするプラットフォーム全体で利用可能な共通 (サブセット) 領域を特定する方法であり、このサブセット以外の追加の API を公開または追加することはありません。そのため、一部のメンバーは異なります。
特定の API がポータブルでサポートされていると MSDN が述べている場合、実際には、特定のプラットフォームの組み合わせを選択したときに API を使用できることを意味します。たとえば、この場合の Interlocked.Read は、新しいポータブル クラス ライブラリを作成するときに、ダイアログで .NET Framework & Windows ストア アプリ (およびその他のアプリ) を選択すると使用できます。残念ながら、これはドキュメントで混乱を招くことを認識しており、将来的に改善するために取り組んでいます.
Visual Studio 2012 の RTM とダウンレベル ツールの現在の RC ビルドでは、Interlocked メソッドの Int64 バージョンを実際に公開していますが、Windows Phone を対象とする場合に公開されるバグがあります。これは正しくありません。Windows Phone では機能しません (呼び出されると NotSupportedException がスローされます)。