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 :
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
Thread.CurrentThread.ManagedThreadId
mais est-ce que je peux tuer la tache avec l'id ?
Partager