Timeout d'une fonction

FlyinArno Messages postés 12 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 22 février 2007 - 21 févr. 2007 à 15:53
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 24 févr. 2007 à 12:06
Bonjour,


Mon probleme est que j'ai une Form avec un bouton qui fais appelle a une fonction tres longue.Celle ci s'arrete au bout d'un certain temps et leve une exception.J'aimerai bien pouvoir regler le timeout de celle-ci sans avoir a utiliser de thread .

D'avance merci


 

5 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
21 févr. 2007 à 15:59
euh... il n'y a aucun TimeOut sur les méthodes en C#...
Ne travaillerais-tu pas avec une base de données ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
FlyinArno Messages postés 12 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 22 février 2007
21 févr. 2007 à 16:11
Si... :-) ...c'est meme toi qui m'a aidé hier mais en fait mon probleme est que dans mon entreprise je n'ai aps le droit d'installer le provider .NET sur la version d'oracle qu'on utilise. Et en faisant des tests je me suis rendu compte que c'etait pas la connection qui etait fermé mais le thread de la fonction appellé par le bouton. Donc je me suis dis qu'on pouvait surement modifier le temps maximum d'une fonction...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
21 févr. 2007 à 16:37
arf... je suis un peu comme les poissons rouges en ce moment... 2 sec de mémoire !

je ne vois pas pour quelle raison la fonction que tu appelles passe en timeout... à moins que le thread à partir duquel tu l'appelles ait une durée de vie limité... ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
FlyinArno Messages postés 12 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 22 février 2007
21 févr. 2007 à 16:56
Je vais te passer ce que me dis l'exception :

ContextSwitchDeadlock a été détecté
Message: Le CLR n'a pas pu effectuer de transition du contexte COM 0x1c0ff0 au contexte COM 0x1c1160 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.

Certe mais je suis un peu un debutant et je comprend pas ce qu'ils veulent dire par la...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 févr. 2007 à 12:06
Salut,

Pour ceux qui tomberait sur ce sujet durant leurs recherches, il a été continué ici : http://www.csharpfr.com/infomsg_ERREUR-MDA_892582.aspx
Et le même problème avait été abordé ici : http://www.csharpfr.com/infomsg_PROBLEME-ATTENTE_880490.aspx

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous