C# .Net Core 1.0线程类没有';没有中断()函数

C# .Net Core 1.0线程类没有';没有中断()函数,c#,multithreading,.net-core,C#,Multithreading,.net Core,通过阅读msdn上的文档,我只是在尝试使用一些线程类函数。但是发现了这个奇怪的行为,线程类中没有中断函数。我正在使用Visual studio 2015和.net core 1.0控制台应用程序 using System; using System.Threading; namespace ThreadingBasicsRight { public class Program { public static Object _lock = new Object(); public

通过阅读msdn上的文档,我只是在尝试使用一些线程类函数。但是发现了这个奇怪的行为,线程类中没有中断函数。我正在使用Visual studio 2015和.net core 1.0控制台应用程序

using System;
using System.Threading;
namespace ThreadingBasicsRight
{

public class Program
{
    public static Object _lock = new Object();
    public static void Main(string[] args)
    {
        Thread t = new Thread(test1);
        t.Start();
        t.Interrupt(); 
    }
    public static void test1()
    {
        lock (_lock)
        {
            for (int i = 0; i < 1000; i++)
            {
                Console.WriteLine(i);
            }
            Thread.Sleep(100);
        }
    }
    public static void test2()
    {
        lock (_lock)
        {
            Console.WriteLine("process is not in a dead lock");
        }
    }
 }
}
使用系统;
使用系统线程;
命名空间ThreadingBasicRight
{
公共课程
{
公共静态对象_lock=新对象();
公共静态void Main(字符串[]args)
{
螺纹t=新螺纹(测试1);
t、 Start();
t、 中断();
}
公共静态void test1()
{
锁
{
对于(int i=0;i<1000;i++)
{
控制台写入线(i);
}
睡眠(100);
}
}
公共静态void test2()
{
锁
{
WriteLine(“进程未处于死锁”);
}
}
}
}

好吧,就是这样;只有
Start
Sleep
Join
可用<代码>线程。中断是一种最不受欢迎的同步方式;毫无疑问,Core完全忽略了它。(即使类存在于.NET Core中,也不能保证它们拥有.NET Framework中的所有内容。)谢谢这一点,我想我可能正在查看.NET 4文档。您真的需要线程吗?为什么不使用任务?为什么要在线程中引发异步异常?您对此有什么可能的用例?@Luaan:所讨论的线程可以捕获
ThreadInterruptedException
,并将其用作执行某些操作(如停止处理)的信号,从而省去了使用单独事件、锁定对象或您所拥有的任何东西的需要。(它类似于
Thread.Abort
,但很安全,因为它只在线程进入等待状态时才会抛出。)这就是它的用例,它只是被更好的替代方案(如任务取消)所取代,而.NET Core没有令人信服的理由提供它。