我真的需要一些代码示例......我想做的是:
GetCollectionFromDatabase
foreach item
{
resetEvents[i] = new ManualResetEvent(false);
var makeRequest = new MakeRequest(resetEvents[i]);
ThreadPool.QueueUserWorkItem(new WaitCallback(makeRequest.ThreadPoolCallback), i);
}
db.Save();
ThreadPoolCallback
{
update/delete the row
}
这是正确的用法吗?我是否将数据库作为参考传递给ThreadPoolCallBack
?
答案 0 :(得分:1)
您必须在线程池回调中创建上下文。实体框架上下文不是多线程的,不能由不同的线程共享。
我认为db
是这种情况下的数据库上下文。您必须在ThreadPoolCallback
中创建一个新的并将其保存在那里。