在我的程序中有两种方法,一种是开始处理,另一种是结束处理。
Public void StartProcessing()
{
Thread.Sleep(30000)
bool isActive = _repository.FindBy(s=>s.UId == 1).isActive //Linq Query
}
Public void EndProcessing()
{
//Update data
}
所以当我调用StartProcessing()
方法时,它会等待30秒,30秒后它会从sql返回数据。所以现在的问题是,当我在30秒之前更新数据时,它没有返回更新的数据。
请给我解决方案。
答案 0 :(得分:2)
1)不要在许多线程中重用你的Context(我假设你使用EF)。在每个线程中创建一个新的上下文/存储库
2)不要使用线程,使用任务(任务并行库)
我猜FindBy可能会首先检查已加载的项目,这就是为什么你得到了#34; old"数据。
如果你关注" 1"你的问题可能会得到解决
如果没有,您可能不会更新您的用户....