İşte bir yol. En iyi yol olup olmadığını bilmiyorum, ama işe yarıyor.
// requires System.Net namespace
WebRequest request = WebRequest.Create(_url);
using (var response = request.GetRespone())
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
}
GÜNCELLEME: Silverlight, WebRequest
sınıf hiçbir GetResponse
yöntemi var gibi görünüyor; Bunu asenkronize etmek için başka seçeneğiniz yok.
Aşağıda bu konuya nasıl gidebileceğinizi gösteren örnek bir kod verilmiştir. (Sizi uyarıyorum: Bunu şimdi, ne kadar mantıklı olduğuna dair çok düşünmeden yazdım. Bu işlevselliği nasıl uygulamaya koyacağınız büyük olasılıkla oldukça farklı olacaktır. Her neyse, bu size en azından ihtiyacınız olan şey hakkında genel bir fikir vermelidir.
WebRequest request = WebRequest.Create(_url);
IAsyncResult getResponseResult = request.BeginGetResponse(
result =>
{
using (var response = request.EndGetResponse(result))
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
// Do something with image.
}
},
null
);
Console.WriteLine("Waiting for response from '{0}'...", _url);
getResponseResult.AsyncWaitHandle.WaitOne();
Console.WriteLine("The stream has been loaded. Press Enter to quit.");
Console.ReadLine();
benzer, ancak daha kısa bir yaklaşım 'WebClient.OpenRead' kullanmak olacaktır. –
@Fredrik: Güzel, bunu bilmiyordum. Bir kediyi ciltlemek için neredeyse her zaman birden fazla yol olduğunu göstermeye gider. –
Çocuklar, bu yöntemler Silverlight için System.Net'te görünmüyor, herhangi bir ipucu .... 'request.GetRespone())' veya 'WebClient.OpenRead 'Onları kullanamıyorum – VoodooChild