CORRECTIF : lorsqu'une application .NET Framework en fonction utilise la classe System.Threading.Timer, l'événement Minuterie peut ne pas être signalé dans le SP1 .NET Framework 1.1

Traductions disponibles Traductions disponibles
Numéro d'article: 900822 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Lorsqu'une application Microsoft .NET Framework gérée utilise la classe System.Threading.Timer dans Microsoft .NET Framework 1.1 Service Pack 1 (SP1), l'événement Minuterie peut ne pas signalé. En général, ce problème se produit si l'ordinateur qui exécute l'application se trouve sous une charge lourde ou si de nombreux objets minuteur sont exécutent.

Résolution

Informations sur le correctif



Un correctif est disponible auprès de Microsoft. Toutefois, ce correctif est conçu pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n'êtes pas gravement touché par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielles qui contiendra ce correctif.

Pour télécharger ce correctif de la bibliothèque de code MSDN, reportez-vous au site de Web Microsoft suivant :
http://code.msdn.microsoft.com/KB900822

note La bibliothèque de code MSDN affiche les langues dont le correctif est disponible. Si vous ne voyez pas votre langue répertorié, il est parce que la page de ressources galerie de code n'est pas disponible pour cette langue.

note Si des problèmes supplémentaires se produisent ou si n'importe quel dépannage est nécessaire, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux autres questions et problèmes non traités par ce correctif spécifique. Pour une liste complète des Microsoft client service et support numéros de téléphone ou pour créer une demande de service distincte, reportez-vous au site de Web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=support

Conditions préalables

Microsoft .NET framework 1.1 Service Pack 1

Demande de redémarrage

Vous devez redémarrer l'ordinateur après avoir appliqué cette mise à jour logicielle.

Informations de remplacement de mise à jour logicielle

Cette mise à jour logicielle n'en remplace aucune autre mise à jour logicielle.

Informations de fichier

La version anglaise de cette mise à jour logicielle dispose les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'outil Date et heure du Panneau de configuration.
   Date         Time   Version        Size       File name
   ----------------------------------------------------------
   09-Jun-2005  05:46  1.1.4322.2331  2,138,112  Mscorlib.dll
   09-Jun-2005  05:48                    10,908  Mscorlib.ldo
   09-Jun-2005  05:56  1.1.4322.2331  2,519,040  Mscorsvr.dll
   09-Jun-2005  05:57  1.1.4322.2331  2,506,752  Mscorwks.dll

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Les classes Timer sont implémentés comme une liste liée d'objets du minuteur. Lorsque le premier objet System.Threading.Timer est créé, le gestionnaire de groupements thread démarre un thread pour traiter la liste liée. Chaque objet timer est ajouté à la liste liée. Le thread qui traitent de la liste liée parcourt la liste liée et détermine laquelle l'événement timer devrait être signalée contre le nombre d'horloge actuel.

Met en file si l'objet timer a expiré, le thread asynchrone d'attente une fonction de rappel avant que le thread mette à jour l'heure à laquelle l'événement timer est censée être signalée. Une fois que le thread a traité tous les objets du minuteur dans la liste liée, le thread met à jour l'heure de dernier traitement de la liste liée. Ensuite, le thread calcule la durée plus courte que le thread doit mettre en veille avant que le thread de retraite de la liste liée de la prochaine écoulé objet timer.

Parfois, lorsque le système est sous sous contraintes ou lorsque la liste liée contient de nombreux objets timer, le thread de traitement peut être annulé par un thread de priorité plus élevé avant que l'ensemble liée liste a été traitée. Lorsque ce problème se produit, l'heure à laquelle un événement timer est censée ensuite être signalée est calculé pour être antérieure à l'horodatage lorsque la liste liée dernière a été traitée. Par conséquent, le temps que l'événement timer est censée être signalée est dans le passé et n'expire jamais.

Car l'heure à laquelle l'événement timer est censée être signalée est déjà passée, le thread peut calculer une période d'attente avant l'événement timer doit être signalé négative. Lorsque le thread a une période d'attente négative, le thread entre un état de veille pendant un long moment.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Propriétés

Numéro d'article: 900822 - Dernière mise à jour: lundi 3 décembre 2007 - Version: 2.12
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 1.1 Service Pack 1
Mots-clés : 
kbmt kbwinserv2003sp2fix kbfix kbbug kbpubtypekc kbqfe KB900822 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 900822
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com