Je dois consommer un service web .asm 2.0 .netx que je n'ai pas construit et que je ne peux pas contrôler. Cependant, le service est hautement disponible et peut gérer cela. Ce dont j'ai besoin d'aide est le client, et l'utilisation du proxy client généré par Visual Studio correctement à partir d'un point de vue de la concurence. Actuellement, j'utilise une référence Web, mais je peux passer à une référence de service si nécessaire. Cependant, je ne connais rien à la WCF.Utilisation correcte multithread du client de référence Web .Net
Plus je lis, plus je me trompe.
Mes questions spécifiques:
Étant donné un studio visuel généré proxy client de savon qui produit des méthodes le long des lignes de:
Foo();
FooAsync();
FooCompleted;
Bar();
BarAsync();
BarCompleted;
- devrait/ce que je peux appeler Foo() de plus d'un fil , comme dans un Parallel.ForEach?
- Devrais/dois-je appeler FooAsync() à l'intérieur du foreach parallèle? Cela semble redondant, puisque je suis déjà sur un autre fil? Est-il sûr de le faire?
- Devrais/puis-je appeler FooAsync() sur un thread, tout en appelant BarAsync() sur un autre thread?
- Ces classes de service de savon générées semblent implémenter le modèle EAP. Je suis tout nouveau dans les trucs pfx/tpl, mais j'ai regardé les tâches comme un moyen de mieux gérer ça. J'ai vu des exemples de comment emballer EAP avec la tâche en utilisant TaskCompletionSource. Est-ce la meilleure approche ici?