Mike Ribeiro
Mike Ribeiro

Reputation: 325

How to handle database operations using threadpool and entity framework?

I really need some code examples here... What I am trying to do:

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 
}

Is this the right appoach? Do I pass in the db as a ref to the ThreadPoolCallBack?

Upvotes: 3

Views: 919

Answers (1)

Pieter van Ginkel
Pieter van Ginkel

Reputation: 29642

You will have to create a context within the thread pool callback. Entity framework contexts are not multi threaded and cannot be shared by different threads.

I take it db is your database context in this case. You will have to create a new one in ThreadPoolCallback and save it there.

Upvotes: 1

Related Questions