我想这段程序执行结果肯定会很诡异吧?
主要应该是Action里面引用了外部变量kvConn,在这里会形成闭包,如果不知道闭包,你可以去查一下。
解决倒是很简单
在Action里面添加
KeyValePair<string,string> tempkvConn=kvConn;
使用一个局部的tempkvConn保存kvconn即可,当然后面的也要改过来
你可以使用线程池去实现你的要求,线程池中提供的ThreadPool.QueueUserWorkItem和ManualResetEvent
完全可以满足你的要求。在微软的例子中叶提供了相关的列子。地址为:
http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx