.NET Sınıf Kitaplığı Bölüm 9’daki Yenilikler: Ağ Erişimi için Eşzamansız Yöntemler

Womanne

Member
.NET Framework Sınıf Kitaplığının 4.5 sürümü 947 yeni sınıf içerir. Bir dizi makale, büyük kütüphaneleri ilgilendirmeyen ve bu nedenle kamuoyunun gözünde o kadar da fazla olmayan on yeniliği sunuyor. Diziler için varsayılan dilin ayarlanması en son sunulduktan sonra, 9. bölüm ağ erişimi için eşzamansız yöntemlerle ilgilenir.


Microsoft ayrıca, ağ programlama için .NET 4.5’te göreve yönelik eşzamansız yürütme için yeni eşzamansız yöntemler tanıttı. Mevcut sınıflar arasında, Microsoft sınıfına sahiptir System.Net.Webclient aşağıdaki şekillerde genişletilmiştir:

  • OpenReadTaskAsync()
  • OpenWriteStringTaskAsync()
  • DownloadDataTaskAsync()
  • İndirFileTaskAsync()
  • İndirStringTaskAsync()
  • UploadDataTaskAsync()
  • UploadFileTaskAsync()
  • UploadStringTaskAsync()
  • UploadValuesTaskAsync()
web istemcisi
İndirStringAsync()
İndirStringCompleted()


public static void Run()
{
Console.WriteLine("Run() #1: Thread=" +
System.Threading.Thread.CurrentThread.ManagedThreadId);
GetAsync();
Console.WriteLine("Run() #2: Thread=" +
System.Threading.Thread.CurrentThread.ManagedThreadId);
}
/// <summary>
/// Diese Methode startet das asynchrone Herunterladen
/// </summary>
/// <returns></returns>
public async static Task<string> GetAsync()
{
List<string> urls = new List<string>() { "http://www.IT-Visions.de",
"http://www.dotnetframework.de", "http://www.winrt.de",
"http://www.dotnet-akademie.de" };
string inhalt = "";
using (var wc = new System.Net.WebClient())
{
foreach (string url in urls)
{
inhalt = await wc.DownloadStringTaskAsync(url); // Hier wird die
// Kontrolle an den Aufrufer gegeben
// Download erfolgt in eigenem Thread
// Der Rest der Methode wird auch in eigenem Thread abgearbeitet
Console.WriteLine("GetAsync(): Thread=" +
System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("GetAsync(): Länge des Inhalts von " + url
+ "=" + inhalt.Length);
}
}
return inhalt;
}


Sınıf için uzantıların yanı sıra System.Net.WebClient yeni bir sınıf var System.Net.Http.HttpClient. Microsoft, yeni sınıfın neden eskisinden daha iyi olduğuna dair beş argüman sağlar. Ancak, WebClient’ten devralabileceğiniz ve aynı anda birden çok isteği işleyebileceğiniz için bunlar kesin değildir ve artık yeni görev tasarım modeliyle eşzamansız yöntemleri de desteklerler.

Kendi sınıfının varlığı HttpClient muhtemelen yine oldukça “kaotik” bir karardır. Bu sınıf, ASP.NET Web API projesinden kaynaklandı ve daha sonra .NET Framework’e dahil edildi.


()



Haberin Sonu
 
Üst