SORU
23 EKİM 2008, PERŞEMBE


Nasıl bir akış içeriğini kopyalayacağım?

Başka bir akış içeriğini kopyalamak için en iyi yolu nedir? Bu standart yarar bir yöntem var mı?

CEVAP
23 EKİM 2008, PERŞEMBE


Dan .NET 4.5, Stream.CopyToAsync method

input.CopyToAsync(output);

Bu tamamlandığında devam edilebilir Task bir, gibi döndürür:

await input.CopyToAsync(output)

// Code from here on will be run in a continuation.

CopyToAsync çağrısı, aşağıdaki kodu yapılır yere bağlı olarak Mayıs ya da adı aynı konu üzerinde devam edebilir unutmayın.

await ararken yakalandı SynchronizationContext devamını idam konusunda ne olacağını belirleyecek.

Ayrıca, bu çağrı (ve bu uygulama değiştirilebilir) hala okur ve yazar (sadece konuları engelleme/Ç tamamlama harcamaz) dizileri.

Dan .NET 4.0, var Stream.CopyTo method

input.CopyTo(output);

İçin .NET ve önce 3.5

Hiçbir şey bu yardımcı çerçeve içine pişmiş olmaz; elle, şu şekilde: içeriğini kopyalamak için

public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[32768];
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write (buffer, 0, read);
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • Tire Rack

    Tire Rack

    31 Mayıs 2007
  • Valdorsha

    Valdorsha

    8 Mayıs 2006