小编cod*_*ode的帖子

在循环中创建线程时,将值传递给c#中的线程启动方法

我在循环中创建线程,我需要在线程启动方法中传递循环计数器(就像创建线程时一样).

for (int i = 0; i < ListSize; i++)
{
    thread = new Thread(() => 
        Helper.GetEndToEndRequestProcessTime(EmailList[i], reqResultData, i, ListSize));
    workerThreads.Add(thread);
    thread.Start();
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子i中,变量I作为参数GetEndToEndRequestProcessTime().但问题是,实际线程的起始值i正在发生变化,而我的结果却是错误的GetEndToEndRequestProcessTime().

如何确保在线程启动时传递的值GetEndToEndRequestProcessTime()与创建线程时提供的值相同.

c# multithreading

2
推荐指数
1
解决办法
98
查看次数

标签 统计

c# ×1

multithreading ×1