我在我的 WP8 项目中使用 Linq to sql 进行数据库操作。当另一个线程对该数据库执行操作时,是否有一种通用的方法来执行等待操作?有时我会收到一个未处理的异常,该异常将终止应用程序,因为有待处理的操作。
问问题
102 次
1 回答
2
使用锁定机制。
首先,在您的类中创建一个对象:
private object syncRoot = new object();
然后,将代码的所有关键部分包含在lock
块中:
lock (this.syncRoot)
{
// This section of code will be executed by only one thread at a time
}
块内的所有代码一次lock
只能由一个线程执行。如果两个线程尝试执行它,其中一个将自动等待,直到另一个退出该块。通过将所有数据库操作包装在lock
块中,您将确保一次只有一个线程可以访问它。
于 2013-09-09T08:33:46.300 回答