2009-10-13 5 views
1

J'ai un tableau d'octets de certaines données binaires que j'ai besoin d'envoyer sur le réseau en utilisant WCF et NetTcpBinding. Mon problème est que je dois envoyer seulement la partie du tableau. Y at-il un moyen de le faire, autre que de copier cette partie dans un tableau séparé, et d'envoyer celui-là. Cette copie supplémentaire dégrade les performances, et je voudrais l'éviter, si possible.Envoi d'une partie du tableau d'octets sur le réseau à l'aide de WCF

+2

Si vous envoyez des données sur le réseau, elles seront copiées plusieurs fois. La copie d'une partie des données dans l'espace utilisateur du processus en cours devrait entraîner une charge minimale par rapport à tout le reste. Avez-vous mesuré si cette surcharge est vraiment significative? –

Répondre

0

Selon toute vraisemblance, l'atteinte des performances de l'opération de copie sera négligeable dans le contexte d'un appel WCF.

Utilisez Array.Copy qui semble fonctionner très bien.

+0

Je me demandais comment WCF envoie la liste , par exemple. La liste contient en interne un tableau d'octets. Envoie-t-il tout le tableau d'octets ou seulement le nombre d'octets réellement utilisés dans la liste (capacité ou nombre). J'ai besoin de quelque chose comme ça. –

+0

Vous n'allez pas améliorer les performances en utilisant une classe de collection plus abstraite - il aura toujours besoin de faire des opérations de copie de tableau en interne. –

Questions connexes