C#多线程代码未达到断点
请看下面的示例代码,当我在“testmethod”中放置断点并运行应用程序时,它没有到达断点。这个代码好吗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);
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();