2016-06-28 10 views
10

のための同等の1.0.NETコアSystem.Threading.Thread.CurrentThread.ManagedThreadId

System.Threading.Thread.CurrentThread.ManagedThreadId 

のために(最も近い).NETのコア1.0と同等でしょうか?

更新

@svickはを明らかにしたようは、その通常の位置にあるSystem.Threading.Thread.CurrentThread.ManagedThreadId。以下のスクリーンショットをご覧ください。質問は終了しました。 (まだ不明方法と時期CurrentThreadプロパティのSystem.Threading.Threadインスタンスがnull以外の値に初期化される(デフォルト(System.Threading.Thread)は?常に== nullである)が、これはこれの対象ではありませんトピック)

enter image description here

アップデート2

実際は、その中に定義された.NETコア1.0アプリケーションプロジェクトに利用可能であるSystem.Threading.Thread.CurrentThread.ManagedThreadId project.json:

"frameworks": { 
    "netcoreapp1.0": { 
    "imports": "dnxcore50" 
} 

とそのproject.jsonに定義されている.NETのコア1.0クラスライブラリプロジェクトに欠けている:

"frameworks": { 
    "netstandard1.6": { 
    "imports": "dnxcore50" 
} 

System.Threading.Thread.CurrentThreadにする方法.ManagedThreadId .NET Core 1.0クラスライブラリプロジェクトで利用できますか?

+0

あなたが見ている何を参照アセンブリのソースである(それはそれは中だ理由です'ref'ディレクトリで、' src'にはありません)。 [実際の実装はCoreCLRにあります](https://github.com/dotnet/coreclr/blob/release/1.0.0/src/mscorlib/src/System/Threading/Thread.cs#L751-L758) – svick

+0

@ svick:ありがとうございます、ManagedThreadIdはネイティブモードのハッキングを使って実装されています - ここではthread.csコードから引用されたコメントがあります: "_ Threadの基本実装はすべてネイティブです。スレッドオブジェクトが割り当てられるように適切なスペースを定義するためにここにあります。vm \ object.h_のThreadBaseObjectを変更しないかぎり、これらを変更しないでください。 " – ShamilS

答えて

19

これはまだ同じです:System.Threading. Thread . CurrentThread . ManagedThreadIdです。

ThreadクラスはMicrosoft.NETCore.Appではなく、NETStandard.Libraryに含まれているSystem.Threading.Threadパッケージ、です。これは、Threadが.Netコアアプリケーションでそのまま動作することを意味しますが、.Net Coreライブラリで使用するには、"System.Threading.Thread": "4.0.0""dependencies"をproject.jsonに追加する必要があります。 VS 2017の場合

とベースの.NETのコアプロジェクトを.csproj、あなたは.csprojに追加したい:

<PackageReference Include="System.Threading.Thread" Version="4.0.0" />  
+0

愚かです。はい、私は昨日.NET Core 1.0を使い始めましたが、System.Threading.Thread.CurrentThread.ManagedThreadIdが見つかりませんでした。私は更新し、私は私の元の質問を終了します。 – ShamilS

+0

件名/問題の文脈を明確にする* update2 *を追加しました。質問は開いて – ShamilS

+0

@ShamilS Updatedに設定されています。 – svick