2010-01-21 10 views
6

Yeni oluşturulmuş iş parçacıklarının, üst iş parçacıklarında ThreadStatic durumunun (veya benzeri bir şey) değerlerini miras alması için bir yol var mı? İzleme/kayıt için kullanılacak işlem/görev bağlam bilgisini içeren "dinamik kapsamlı" özel değişkenleri uygulamak için bunu (veya bunun gibi bir şeyi) kullanmak isterim. Bu makul bir yaklaşım mıdır ve işe yarayabilir mi?Çok satırlı bağlamda C# /. NET'te dinamik kapsam belirleme için ThreadStatic değerleri Kalıcı değerler

cevap

6

Değerleri "devral" edemezsiniz. Ancak, .NET 4 için yeni ThreadLocal<T> class, constructor numaralı belgede Func<T> sağlamanıza olanak tanır, bu iş parçacığı üst öğenin durumuna göre başlatabilir. Bu makul bir çözüm sağlayacaktır.

+0

Teşekkürler, bu kesinlikle ilginç. Fakat çocuğun ebeveynin devletine nasıl erişmesine izin veririm? –

+0

Ebeveyn içinde, ThreadLocal 'u initalize etmek için gerekli olan değişken (ler) e erişim sağlayan bir lambda kullanabilirsiniz. Bu, bir tembel başlatma şekli kullanır, bu nedenle ilk kullanımda, geçerli ebeveynin durumunu alırsınız. –

+0

bu, unuttuğum bir nedenden ötürü ihtiyaç duyduğum zamanda yapmadı, ama yine de bunu bilmek güzeldi. –