Partager via


Thread dans le .NET Compact Framework

Mise à jour : novembre 2007

Le .NET Compact Framework prend en charge les fonctionnalités de threading principales, mais pas les fonctionnalités suivantes dans le .NET Framework complet :

  • Accès à la pile compressée sur le thread actuel.

  • Représentation managée de la structure OVERLAPPED Win32.

  • Classes qui gèrent le contexte d'exécution.

  • Utilisation de sémaphores.

  • Attributs d'état de thread.

  • Majorité des opérations de handle d'attente à l'exception de l'obtention du handle.

Le .NET Compact Framework prend en charge l'utilisation du délégué ThreadStart avec la méthode Thread.Start et l'utilisation du délégué TimerCallback avec Timer.

Vous pouvez spécifier des paramètres de délai d'attente à l'aide des méthodes de threading suivantes :

Modifications dans les pools de threads

Dans le .NET Compact Framework version 1.0, le nombre maximal de threads par défaut dans un pool de threads est 256 threads avec une taille de pile de 64 KB. Dans le .NET Compact Framework version 2.0 et versions ultérieures, cette limite est réduite à un maximum de 25 threads avec une taille de pile de 128 KB, ce qui correspond mieux à la fonctionnalité du .NET Framework complet.

Une demande HTTP échouera et lèvera une exception si aucun thread n'est disponible dans le pool de threads. Le tableau suivant répertorie les principales exceptions dans cette situation.

Exception

Condition

OutOfMemoryException

Impossible de mettre en file d'attente le rappel de l'utilisateur.

WebException

Nombre insuffisant de threads dans le pool de threads pour terminer l'opération.

Vous pouvez éviter de manquer de threads en réduisant le nombre de demandes Web simultanées ou en augmentant le nombre maximal autorisé des threads dans le pool de threads. Le .NET Compact Framework 2.0 prend en charge la méthode SetMaxThreads. Spécifiez ses paramètres comme décrit dans le tableau suivant.

Paramètre

Description

workerThreads

Nombre maximal de threads de travail dans le pool de threads. Il peut s'agir de n'importe quelle valeur.

completionPortThreads

Nombre maximal de threads asynchrones dans le pool de threads. Le .NET Compact Framework ignore actuellement cette valeur, mais elle doit se situer entre 1 et 1 000. À des fins de compatibilité future, la valeur 500 est recommandée, car il s'agit de la valeur par défaut pour le .NET Framework complet.

Pour les périphériques qui exécutent le .NET Compact Framework 1.0,, vous pouvez diminuer le nombre maximal autorisé des threads dans le pool de threads en modifiant un paramètre du Registre. Affectez la valeur désirée à MaxThreads dans la clé CFROOT\ThreadPool. Notez que cette clé de Registre n'est pas utilisée par les versions ultérieures de .NET Compact Framework.

Voir aussi

Référence

System.Threading

Autres ressources

Développement d'applications dans le .NET Compact Framework