SORU
8 Mart 2011, Salı


Nasıl ThreadStatic iş öznitelik mu?

Nasıl [ThreadStatic] çalışma öznitelik mu? Derleyici şeyler için bazı IL TLS değerini almak/yayarlar diye düşünmüştüm, ama bir çözümü bakarak bu düzeyde yapmak gelmiyor.

Bir takip olarak, eğer bir statik olmayan üye koyarsan ne olur? Bir geliştirici bu hatayı yaptık ve derleyici uyarı bile teklif gelmiyor.

Güncelleme

İkinci soru cevabı burada: ThreadStatic Modified with Static C#

CEVAP
8 Mart 2011, Salı


Nasıl [ThreadStatic] özniteliği iş?

Alanı ThreadStatic ile işaretlenmiş bir konuya bağlı olduğunu ve ömrü boyunca bir iplik ömrü ile karşılaştırılabilir.

Kesinliği ThreadStatic benzer (anlambilim) anahtar-değer bir konuya bağlı kalmadan yani:

Thread.Current["MyClass.myVariable"] = 1;
Thread.Current["MyClass.myvariable"]  = 1;

ancak sözdizimi biraz daha kolay

class MyClass {
  [ThreadStatic]
  static int myVariable;
}
// .. then
MyClass.myVariable = 1;
MyClass.myVariable  = 1;

eğer statik olmayan bir üye koyarsan ne olur?

İhmal olduğuna inanıyorum:

    class A {
        [ThreadStatic]
        public int a;
    }
    [Test]
    public void Try() {
        var a1 = new A();
        var a2 = new A();
        a1.a = 5;
        a2.a = 10;
        a1.a.Should().Be.EqualTo(5);
        a2.a.Should().Be.EqualTo(10);
    }

Ayrıca değer ThreadStatic normal static alanlar karşılaştırıldığında herhangi bir senkronizasyon mekanizması devlet paylaşılmaz çünkü) gerektirmeyen bir söz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011