4

ポータブルクラスライブラリプロジェクトでInterlockedクラスのメソッドを使用したいと思います。また、MSDN(ここ)によると、Interlockedクラスはポータブルフレームワークでサポートされています。残念ながら、Interlockedメソッドの一部しか使用できないようです。たとえば、「読み取り」もExchange(Int64、Int64)も見つかりません。誰かが彼らがどこかに隠れているのか、それとも単に実装されていないのか知っていますか?もしそうなら、なぜですか?

4

1 に答える 1

2

ポータブル ライブラリは、ターゲットとするプラットフォーム全体で利用可能な共通 (サブセット) 領域を特定する方法であり、このサブセット以外の追加の API を公開または追加することはありません。そのため、一部のメンバーは異なります。

特定の API がポータブルでサポートされていると MSDN が述べている場合、実際には、特定のプラットフォームの組み合わせを選択したときに API を使用できることを意味します。たとえば、この場合の Interlocked.Read は、新しいポータブル クラス ライブラリを作成するときに、ダイアログで .NET Framework & Windows ストア アプリ (およびその他のアプリ) を選択すると使用できます。残念ながら、これはドキュメントで混乱を招くことを認識しており、将来的に改善するために取り組んでいます.

Visual Studio 2012 の RTM とダウンレベル ツールの現在の RC ビルドでは、Interlocked メソッドの Int64 バージョンを実際に公開していますが、Windows Phone を対象とする場合に公開されるバグがあります。これは正しくありません。Windows Phone では機能しません (呼び出されると NotSupportedException がスローされます)。

于 2012-09-12T22:21:00.913 に答える