Maison >développement back-end >C++ >Comment copier efficacement le contenu des flux dans .NET?

Comment copier efficacement le contenu des flux dans .NET?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-31 09:21:12596parcourir

How to Efficiently Copy Stream Contents in .NET?

La méthode de réplication efficace du contenu du contenu du flux

Dans la programmation, la copie du contenu d'un flux vers un autre est une opération courante. .NET fournit plusieurs méthodes pour implémenter cette opération.

Utilisez Stream.CopyToAsync Method (.NET 4.5)

.NET 4.5 Stream.CopyToAsync Méthode a introduit une méthode de contenu de flux de réplication asynchrone:

Cette méthode renvoie une tâche, qui peut attendre qu'elle se termine pour s'assurer que l'opération est terminée. Il maintient le contexte et permet au code suivant de continuer à s'exécuter sur le même thread.

<code class="language-csharp">input.CopyToAsync(output);</code>
Utilisez la méthode Stream.copyto (.net 4.0)

Dans les versions .NET 4.0 et supérieures, la méthode Stream.Copyto a fourni une copie synchrone de l'écoulement:

Implémentation personnalisée de la personnalisation de .NET 3.5 et des versions antérieures

<code class="language-csharp">input.CopyTo(output);</code>
Pour la version précédente du .NET 3.5, il n'y avait pas de méthode construite. Vous devez utiliser le contenu de copie manuelle de boucle:

Précautions

<code class="language-csharp">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);
    }
}</code>
La taille du tampon dans Copystream peut être ajustée pour optimiser les performances.

Veuillez noter que la longueur du flux peut ne pas être disponible pour une réalisation de flux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn