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
一度に 1 つのスレッドによってのみ実行されます。2 つのスレッドがそれを実行しようとすると、そのうちの 1 つは、他のスレッドがブロックを終了するまで自動的に待機します。すべてのデータベース操作をlock
ブロック内にラップすることで、一度に 1 つのスレッドのみがアクセスできるようになります。
于 2013-09-09T08:33:46.300 に答える