SORU
6 Temmuz 2011, ÇARŞAMBA


Nasıl bir alıcı ya da ayarlayıcı gelen zaman uyumsuz yöntem çağrısı için?

C alıcı ya da ayarlayıcı gelen zaman uyumsuz yöntem çağrısı için en zarif yolu olurdu ne#?

Burada kendimi açıklamak için sözde kod.

async Task<IEnumerable> MyAsyncMethod()
{
    return await DoSomethingAsync();
}

public IEnumerable MyList
{
    get
    {
         //call MyAsyncMethod() here
    }
}

CEVAP
6 Temmuz 2011, ÇARŞAMBA


Zaman uyumsuz özelliği desteği, zaman uyumsuz yöntem sadece yok beri çağırmalarına, yapamazsın. Gibi, iki seçenek vardır, hem de CTP yöntemleri zaman uyumsuz gerçeğini yararlanarak gerçekten sadece Task<T> Task döndüren bir yöntem vardır:

// Make the property return a Task<T>
public Task<IEnumerable> MyList
{
    get
    {
         // Just call the method
         return MyAsyncMethod();
    }
}

Ya da:

// Make the property blocking
public IEnumerable MyList
{
    get
    {
         // Block via .Result
         return MyAsyncMethod().Result;
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • George McCarron

    George McCar

    29 Mayıs 2013
  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • RD

    RD

    19 NİSAN 2006