如何编写测试程序并让ThreadUnsafe获得除零错误?

时间:2018-10-30 10:20:46

标签: c# multithreading unsafe

我在C#7.0的第871页中简要阅读了以下线程不安全示例:权威性参考。

    public class ThreadUnsafe
{
    static int val1=1, val2=1;

    public static void Go()
    {
        if (val2 != 0) Console.WriteLine(val1 / val2);
        val2 = 0;
    }
}
class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i < 10; i++)
        {
            ThreadPool.QueueUserWorkItem(x => ThreadUnsafe.Go());
        }

        ThreadUnsafe.Go();
        Console.WriteLine("Press any key for continuing...");
        Console.ReadKey();
    }
}

我已经编写了一个测试程序并启动了2个或更多线程,但是无法获得除以零的异常。

我也在具有4个核心CPU和1个CPU VM的PC上运行了该测试程序,我也无法获得被零除的异常。

您能帮我如何在不安全的线程中运行此示例代码,并得到除以零的异常吗?

0 个答案:

没有答案