Je crée une application multi-thread utilisant des délégués pour gérer le traitement des demandes dans un service WCF. Je souhaite que les clients puissent envoyer la demande, puis se déconnecter et attendre un rappel pour annoncer que le travail est terminé (qui sera probablement effectué dans une base de données). Je ne sais pas combien de demandes peuvent être reçues en même temps, cela pourrait être une demande de temps à autre ou bien des dizaines de demandes. Pour autant que je sache, le pool d'unités d'exécution de .Net a 25 unités d'exécution disponibles. Que se passe-t-il lorsque je recrée 25 délégués ou plus? Est-ce qu'il lance une erreur, attend-il, met-il en pause une opération existante et commence à travailler sur le nouveau délégué, ou un autre comportement? Au-delà, que se passe-t-il si je veux générer jusqu'à 25 délégués alors que d'autres opérations (telles que les connexions entrantes/sortantes) veulent démarrer et/ou lorsqu'une autre opération fonctionne et que je veux générer une autre déléguer?En utilisant des délégués dans C# .Net, que se passe-t-il lorsque je n'ai plus de threads dans le pool de threads .Net?
Je veux m'assurer que c'est évolutif sans être trop complexe.
Merci
Si vous utilisez WCF, vous n'avez pas la version 2.0 RTM de .NET. La limite est de 250 x nombre de cœurs de processeur. –
Ce que je veux dire par souci de threads (et comment j'y accède) appelle des méthodes normalement synchrones via un délégué en utilisant BeginInvoke. Les goulots d'étranglement au niveau des performances sont probablement le fait que le client répondeur fait une chose (attendre une recherche dans la base de données) puis, éventuellement, renvoyer une grande quantité de données et le temps nécessaire pour l'envoyer via Internet au service de courtier central. au client demandeur. –
Je suis actuellement en train de développer ceci dans .Net 3.5, bien que je puisse passer à 4.0 s'il semble qu'il offre des fonctionnalités/performances dont j'ai besoin pour mon application (et WCF en particulier). –