MCP取得の為に、勉強してます。
C#のクラスに、ThreadLocalというものがありますが、これがMIcrosoftのDeveloper Networkのサンプルや、解説を見ても、使い方がよくわからずに悩んでいます。
https://msdn.microsoft.com/ja-jp/library/dd642243(v=vs.110).aspx
C#
1using System; 2using System.Threading; 3using System.Threading.Tasks; 4 5class ThreadLocalDemo 6{ 7 8 // Demonstrates: 9 // ThreadLocal(T) constructor 10 // ThreadLocal(T).Value 11 // One usage of ThreadLocal(T) 12 static void Main() 13 { 14 // スレッドの名前を生成するスレッド変数 15 ThreadLocal<string> ThreadName = new ThreadLocal<string>(() => 16 { 17 return "Thread" + Thread.CurrentThread.ManagedThreadId; 18 }); 19 20 // 現在のスレッドのThreadNameを出力するアクション 21 Action action = () => 22 { 23 // Thread Name.Is Value Createdがtrueの場合、このスレッドで実行する 24 // する最初のアクションではないことを意味します。 25 bool repeat = ThreadName.IsValueCreated; 26 27 Console.WriteLine("ThreadName = {0} {1}", ThreadName.Value, repeat ? "(repeat)" : ""); 28 }; 29 30 // それらの8つを起動します。 4コア以下では、いくつかの繰り返しThreadNamesが表示されるはずです 31 Parallel.Invoke(action, action, action, action, action, action, action, action); 32 33 // 完了したら処分する 34 ThreadName.Dispose(); 35 } 36} 37
これは、上記のページに記載されているサンプルコードです。
コメントはGoogle翻訳で日本語にしました。
ここに出てくるThreadLocalは、何をするためのクラスなのでしょうか?
ラムダ式で、コンストラクタ内にカレントスレッドのIDを取得して返していますが、普通にThreadでやったらいけないのでしょうか?
そもそもこれが何を示す為のサンプルなのかがよくわかりません。
一体このサンプルは、何をしているのでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/02 00:05
2017/01/02 06:57
2017/01/02 11:14