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

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013
  • SoundHound

    SoundHound

    8 Mart 2006