0

我在我的 WP8 项目中使用 Linq to sql 进行数据库操作。当另一个线程对该数据库执行操作时,是否有一种通用的方法来执行等待操作?有时我会收到一个未处理的异常,该异常将终止应用程序,因为有待处理的操作。

4

1 回答 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 回答