2010-03-11 7 views
3

J'ai une instance NamedPipeClientStream dans mon application configurée pour la communication duplex (PipeDirection.InOut). J'ai aussi deux threads, un thread de lecture et un thread d'écriture.Lecture simultanée et écriture dans NamePipeClientStream

Je souhaite que le thread de lecture appelle uniquement la méthode NamedPipeClientStream.Read et que le thread d'écriture appelle uniquement la méthode NamedPipeClientStream.Write. Ils n'appelleront jamais les méthodes des autres, mais ils peuvent faire des appels à l'instance de pipe en même temps. J'ai recherché dans la documentation pour le NamedPipeClientStream et il a dit que les méthodes statiques publiques sont thread-safe, mais les méthodes d'instance ne sont pas garanties pour être thread-safe. Ma question est est-il sûr que j'ai deux threads appelant deux méthodes différentes (lecture et écriture) sur l'instance de pipe en même temps, ou est-ce quelque chose que je ne devrais pas faire? Et, la sécurité de thread de la méthode d'instance s'applique-t-elle uniquement à des threads distincts appelant la même méthode et non à des threads séparés appelant des méthodes séparées comme Read et Write?

Merci!

Répondre

4

Oui, pas de problème. Les deux PipeStream.Read et Write appellent directement l'API Windows native, ReadFile et WriteFile sont thread-safe.

+0

Excellent, c'est ce que j'avais besoin de savoir. Merci! – Chris

Questions connexes