Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#多线程代码未达到断点_C#_Multithreading - Fatal编程技术网

C#多线程代码未达到断点

C#多线程代码未达到断点,c#,multithreading,C#,Multithreading,请看下面的示例代码,当我在“testmethod”中放置断点并运行应用程序时,它没有到达断点。这个代码好吗 static void Main(string[] args) { Thread[] testthreads = new Thread[3]; List<int> testdata = new List<int>(); testdata.Add(1); testdata.Add(2);

请看下面的示例代码,当我在“testmethod”中放置断点并运行应用程序时,它没有到达断点。这个代码好吗

    static void Main(string[] args)
    {
        Thread[] testthreads = new Thread[3];
        List<int> testdata = new List<int>();
        testdata.Add(1);
        testdata.Add(2);
        testdata.Add(3);

        int i = 0;
        foreach (int data in testdata)
        {
            testthreads[i] = new Thread(new ThreadStart(() => testmethod(data)));
            testthreads[i].Name = string.Format("Working Thread: {0}", data);
            i++;
        }
    }

    static void testmethod(int i)
    {
        try
        {
            //DataTable dt = DB.GetData(i);
            if (dt.Count > 0)
            {
                Console.WriteLine("Count: {0}", dt.Count);
            }
        }
        catch (Exception ex) 
        { 
            throw ex; 
        }
    }
}

输出:

Name: JULIE
Name: JULIE
Name: JULIE

始终返回启动线程所需的111111的值(名称)

testthreads[i] = new Thread(new ThreadStart(() => testmethod(data)));
testthreads[i].Name = string.Format("Working Thread: {0}", data);
testthreads[i].Start();

永远不要写
throw-ex@Downvoter-这是一个完全合法的问题。从某种角度来看,这可能被认为是一个愚蠢的错误,但我自己也犯过几次。@BobKaufman-完全同意。说得好。哦,我给你一个+1,因为这是一个完全正确的问题。@SLaks?你能解释一下为什么吗?@CoolArchTek-我会让Joel Spolsky解释为什么你不应该写
抛出ex。(提示:你基本上是在吃一个异常)现在它正在命中断点,但是三次中只有一次!!知道为什么吗?
testthreads[i] = new Thread(new ThreadStart(() => testmethod(data)));
testthreads[i].Name = string.Format("Working Thread: {0}", data);
testthreads[i].Start();