SORU
15 Mayıs 2013, ÇARŞAMBA


Kullanarak deyimleri ve kelimeleri güzel c oyun bekliyor#

async bir Ara IDisposable örnek döndüren bir yöntem ve yapıyorum nerede bir durum var. Örneğin:

HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"));

Şimdi async IDisposable bir örneği, kullanılan bu arama kodu ile "tepki" değişkeni kullanarak bir açıklama sarılmış olur. çalışırken sahnesi vardı, önce

Soruma hala async anahtar mix atıldığında doğru yaklaşım olup olmadığıdır? Kodu derlerken bile kullanarak ifade yine de bu örneklerde beklendiği gibi çalışır mı?

Örnek 1

using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
    // Do something with the response

    return true;
}

Örnek 2

using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")))
{
    await this.responseLogger.LogResponseAsync(response);

    return true;
}

CEVAP
15 Mayıs 2013, ÇARŞAMBA


Evet, bu iyi olabilir.

İlk durumda, yani demek istediğin:

  • Uyumsuz kadar bekleyin yanıt alabiliriz
  • Bunu kullanın ve hemen atın

İkinci durumda, diyorsun ki:

  • Uyumsuz kadar bekleyin yanıt alabiliriz
  • Uyumsuz yanıt açmış çıkana kadar bekleyin
  • Yanıt olarak atın

using deyim, bir zaman uyumsuz yöntem "garip" o Dispose diyebilir yürütmek farklı bir iş parçacığı için bir kazanılmış kaynak (bağlı olarak senkronizasyon bağlamı vs.) ama bu yine de olur... varsayarak şey bekliyorsunhiçgeldi ya, tabii ki başarısız. (using ifadeni asla döndüren bir yöntem çağrısı içeriyorsa, sadece sigara-zaman uyumsuz kod Dispose arama sona ermeyecek gibi.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • laptopmag

    laptopmag

    25 Ocak 2008
  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010