首页 > 代码库 > C#中Task的启动问题

C#中Task的启动问题

如下代码:

foreach (var c in dic_tcpClient)
{
taskSendArray[j] = new Task(() =>
{
var stream = c.Value.GetStream();
if (dic_writebytes.Count > 0 && dic_writebytes[c.Key] != null)
{
stream.Flush();
stream.Write(dic_writebytes[c.Key], 0, dic_writebytes[c.Key].Count());
}
});
taskSendArray[j++].Start();
}

在此过程中,taskSendArray[j]中的实例

是在任务调度开始后才进入代码实例,故多个任务实际是最后一个任务执行了多次

及taskSendArray[0]=taskSendArray[1]=taskSendArray[N];其中的stream为最后一次遍历的C;

 

C#中Task的启动问题