C#线程池创建多线程异步调用回调函数,回调函数没有执行【附源码】
回调函数send没有执行,没有输出i。private ManualResetEvent[] manualEvents= new ManualResetEvent[6];
public void madeTimer()
{madeThreads(this);
}
private void madeThreads(object m)
{for (int i = 0; i < 6; i++)
{ manualEvents[i] = new ManualResetEvent(false); ThreadPool.QueueUserWorkItem(new WaitCallback(send), i);
}
WaitHandle.WaitAll(manualEvents); //等待所有线程池执行完成
}
private void send(object igid)
{int i =(int)igid;
Console.WriteLine("任务:" + i.ToString());
manualEvents[i].Set();
} 线程池 多线程 异步 object c# --------------------编程问答-------------------- 刚在unitTest下试了下楼主代码,可以正常输出啊。你是不是调用madeTimer的方法有问题? --------------------编程问答-------------------- 晕死了,不知道是不是因为同时装了vs2008和vs2010 --------------------编程问答-------------------- 我在send方法里面,用lock锁定了输出的代码,所以没有执行,不知道其中原因
补充:.NET技术 , C#