SORU
20 AĞUSTOS 2012, PAZARTESİ


((yeni nesne) kilit -- Kargo kültü ya da çılgın bir "dil özel durum"?

Bazı kod danışman tarafından yazılmış ve tekrar gözden geçiriyorum ve kırmızı bayraklar onlarca çoktan attı ise, aşağıdaki kod aklım değil

private void foo()
{
    if (InvokeRequired)
    {
        lock (new object())
        {
            if (m_bar!= null)
                Invoke(new fooDelegate(foo), new object[] { });
        }
    }
    else
    {
        if(OnBazChanged != null)
            OnBazChanged();
    }
}

Kilit nedir ((yeni nesne). Ne olursa olsun her zaman başka bir nesne üzerine kilitlemek gibi bir etkisi olmalı, ama kilitleme bu tür kod boyunca kalıcı bile olmayan kopyalama ve yapıştırılan parçalar. Bu C bazı özel durumda# ya da programcı sadece çalışmak için bir süre önce yaşanan bazı kargo kültü hazırlamıştır? bilmediğim bir şey için derlenmiş dil

CEVAP
20 AĞUSTOS 2012, PAZARTESİ


Eğer bu gören biri olsaydı, ben sürpriz olmaz:

private readonly object lockObj = new object();

private void MyMethod()
{
    lock(lockObj)
    {
        // do amazing stuff, so amazing it can only run once at a time
        // e.g. comands on the Mars Rover, or programs on iOS pre 4 / 5 ??
    }
}

ve satır sayısını kesilmiş olabileceğini düşünüyorlardı.

Eğer bu durumda bile olsam çok endişelenirdim...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DominicFear

    DominicFear

    30 Kasım 2006
  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • ShoSho

    ShoSho

    20 Ocak 2010