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

  • Howcast

    Howcast

    4 EKİM 2007
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012