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

Comment copier efficacement le contenu du flux dans .NET?

Barbara Streisand
Libérer: 2025-01-31 09:06:08
original
971 Les gens l'ont consulté

How to Efficiently Copy Stream Content in .NET?

Copie efficace du contenu de flux dans .NET: une analyse comparative

Les données déplacées entre les flux sont une opération fondamentale dans le développement .NET, en particulier dans les applications de traitement des données. Cet article explore plusieurs méthodes de copie efficace des flux, mettant en évidence leurs forces et leurs faiblesses.

Approche optimale: Stream.CopyToAsync (.NET 4.5 et plus tard)

pour les applications .NET modernes (4.5 et plus), Stream.CopyToAsync émerge comme la solution préférée. Sa nature asynchrone assure des performances optimales, empêchant le blocage et permettent des opérations simultanées. La méthode renvoie un Task, permettant une intégration transparente dans les workflows asynchrones. L'utilisation est simple:

<code class="language-csharp">await input.CopyToAsync(output);</code>
Copier après la connexion

Copie synchrone: Stream.CopyTo (.net 4.0 et ultérieure)

Pour la copie de flux synchrone dans .NET 4.0 et plus tard, Stream.CopyTo offre une alternative plus simple, quoique bloquante. Il transfère directement les données de l'entrée au flux de sortie.

<code class="language-csharp">input.CopyTo(output);</code>
Copier après la connexion

Implémentation manuelle (pré-.net 4.0):

Avant .NET 4.0, les développeurs devaient implémenter manuellement la copie de flux. Cela impliquait d'utiliser un tampon pour lire et écrire des données en morceaux. Tout en offrant un plus grand contrôle, cette approche est moins efficace que les méthodes intégrées.

<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>
Copier après la connexion

Choisir la bonne méthode:

Le choix optimal dépend de votre version .NET et des exigences de votre application. Stream.CopyToAsync est recommandé pour les opérations asynchrones de prioriser l'efficacité et la réactivité. Stream.CopyTo convient aux scénarios synchrones où la simplicité est préférée. La méthode manuelle reste une option viable pour les versions .NET plus anciennes, mais son efficacité inférieure doit être prise en compte.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal