(MSDNより)スレッドごとにフィールドの値を別々に保持したかったので、ThreadStatic属性を非staticフィールドに付けて、うまくいかないなぁ。と悩んでました。ThreadStaticなのでstaticだけですよね。
http://msdn.microsoft.com/ja-jp/library/system.threadstaticattribute.aspx
ThreadStaticAttribute でマークした static フィールドは、複数のスレッド間で共有されません。実行中の各スレッドは、そのフィールドのインスタンスを個別に持ち、そのフィールドに対して独自に値を設定および取得します。このフィールドに別のスレッドからアクセスすると、フィールドには別の値が格納されます。
ところで、非staticフィールドをThread間で共有したくない場合はどうするのが一般的なんでしょう。
[ThreadStatic] private static Dictionary<TKey, TValue> _data
0 件のコメント:
コメントを投稿