Sunday, May 27, 2012

C# 5 ile asenkron programlama

C#'ın son sürümü C#5'te asenkron programlama çok kolay! 

 C#'ın son çıkan sürümünde asenkron programlama oldukça kolaylaştırılmıştır. Asenkron programlamayı ise bu yazımda anlatmıştım.

Async deyimi

C#5'te asenkron programlama için asenkron metot tanımlanmalıdır, bunun için async deyimi kullanılmalıdır. Bu deyim, erişim belirleyicisinden sonra gelir.

Task ve Task<T>

Metodun döndüreceği değer tipidir, klasik senkron programlamada metotlar void ya da string, int v.b. olabilir. Bunların asenkron karşılığı void için Task, diğerleri için Task<string>, Task<int> v.b.'dir.

Await deyimi

Asenkron metodun kullanımı sırasında metot çağırılırken başında await deyimi kullanılmalıdır. Asenkron metodun kullanıldığı metot da asenkron olmalıdır.


Aşağıdaki örnek, metoda gönderilen bağlantının içeriğini asenkron olarak alır ve döndürür.

public async Task<string> GetXmlAsync(string url){
var client=new HttpClient();
var response= await client.GetAsync(url);
var text=response.Content.ReadAsString();
return text;
}

2 comments:

  1. Bizim oluşturduğumuz metodları bu anahtar sözcüklerle asenkron hale nasıl getirebiliriz.Bir örnek hazırlayabilir misiniz?

    Metod2 isminde bir metod oluşturup içindeki for döngüsünü asenkron halde çalıştırmak misali...

    Cevabınızı dört gözle bekliyorum..

    ReplyDelete
  2. Delegate ile yapmanız lazım hocam. Bende aylardır arıyorum. Hala bulamadım. :)

    ReplyDelete