Question

Peut-Thread.Abort interrompre un fil qui dort (en utilisant, par exemple, Thread.sleep (TimeSpan.FromDays (40))? Ou bien attendre que le laps de temps de sommeil a expiré?

(Remarques: FromDays (40) est bien sûr une blague et je sais Thread.Abort est pas un moyen recommandé d'arrêter un fil, je travaille avec le code héritage que je ne veux pas factoriser pour l'instant.. )

Était-ce utile?

La solution

code vaut mille mots:

public static void Main(string[] args)
{
    var sleepy = new Thread(() => Thread.Sleep(20000));

    sleepy.Start();
    Thread.Sleep(100);
    sleepy.Abort();
    sleepy.Join();
}

Le programme se termine avant que le temps de sommeil est épuisé.

Autres conseils

Vous pouvez interrompre le fil d'un autre fil uniquement. Autrement dit, vous devez stocker la référence de cette discussion quelque part et puis appelez .Abort d'un fil autre que celui qui dort.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top