Question

J'ai une application de bureau C #, et je consomme un service Web sans problèmes (wsdl ajoutés par « Ajouter un service Références », donc je crée un objet et appelle ses fonctions).

Maintenant, je veux utiliser de longues techniques de vote, mais je ne peux pas comprendre comment faire du point de vue du client.

Comment configurer le délai d'attente? Dois-je utiliser un fil dédié à ce sujet? Y at-il par exemple pour une application de bureau C #? (N'ai pas trouvé)

Merci, Barrage de

Était-ce utile?

La solution

Vous devriez pouvoir configurer le délai d'attente sur l'objet de service Web - les détails dépendra exactement quelle classe qu'il utilise, mais regardez WebClientProtocol.Timeout pour un exemple.

Maintenant, vous pouvez soit appeler synchrone à partir d'un fil dédié, ou vous pouvez faire une asynchrone appel au service Web pour commencer avec, en spécifiant un rappel à exécuter (probablement sur un fil de la piscine de fil ) lorsque les réponses service. Dans ce cas, vous pouvez vous trouver pouvez spécifier le délai d'attente sur l'appel asynchrone lui-même - encore une fois, cela dépendra exactement ce type de service Web classe proxy que vous avez

.

De cette façon, vous ne avez pas besoin de « déchets » un fil juste attendre la réponse - mais vous pouvez constater que le modèle de programmation asynchrone est plus difficile à comprendre que celui synchrone. Si vous avez seulement un ou deux de ces demandes à un moment donné, le couple supplémentaire de fils est peu susceptible d'être un problème. Si vous attendez des réponses de 500 services différents, qui est une autre affaire et le modèle async serait certainement la voie à suivre.

Autres conseils

Pour les questions de filetage, voir la réponse de Jon.

Pour le problème de délai d'attente, voici la solution: En 2008 vs, quand j'ajoute un « service de référence » d'un wsdl, il utilisera WCF par défaut, et je ne peux pas trouver comment définir une valeur de délai d'attente avec elle.

Alors, quand un clic droit sur Références de service, je dois choisir « références web » (référence Web avancée / add). De cette façon, il utilisera uniquement des services Web « normaux » et le paramètre Délai d'attente est disponible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top