Timeout d'une fonction

Signaler
Messages postés
12
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
22 février 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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


 
A voir également:

5 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
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]
Messages postés
12
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
22 février 2007

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...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
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]
Messages postés
12
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
22 février 2007

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...
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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
*/