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

于 2013-09-09T08:33:46.300 に答える