EN
C#/.NET - interrupt thread
6
points
It is possible to break blocking operations (which change thread state to WaitSleepJoin) executed in some thread with Thread.Interrupt
method.
Thread.Interrupt
method example.
using System;
using System.Threading;
namespace Test
{
class Program
{
static void Main(string[] args)
{
Thread thread = new Thread(() =>
{
DateTime t1 = DateTime.Now;
try
{
Thread.Sleep(3000);
}
catch(ThreadInterruptedException)
{
TimeSpan dt = DateTime.Now - t1;
Console.WriteLine("Thread interrupted after " + dt.TotalMilliseconds + " ms.");
}
});
thread.Start();
Thread.Sleep(1000);
thread.Interrupt();
}
}
}
Output:
Thread interrupted after 1003.6518 ms.
Note: One interrupt method breaks one blocked method.