bonjour,
je fais un gestionnaire tache qui gèrent l'exécution de requêtes sql, le principe est le parcours d'une liste de tâche et a chaque fois que les conditions sont remplies je passe la tache a une fonction qui gère sont execution qui consiste en gros a exécuter une requête sql :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
if (cond) 
  ThreadPool.QueueUserWorkItem(new WaitCallback(Launch), task);
 
  private void Launch(SchedTask task)
   {
       ... requête sql;
   }

Comment je peux gérer le problème d'une requête qui serait trop longue. Chaque tâche a un timer qui doit lui dire de s'arrêter s'il est dépassé, mais je n'arrive pas à le mettre en oeuvre. Je pensais envoyer un signal du thread principal à la tâche pour la tuer, mais je ne sais pas comment y accéder depuis le thread principal une fois qu'elle est dans le threadpool. Je peux récupérer la
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Thread.CurrentThread.ManagedThreadId
mais est-ce que je peux tuer la tache avec l'id ?