2015-08-24 233 views
0

我正在開發Windows手機應用程序。我一直在寫數據庫。但我知道不能寫數據庫併發。我應該使用ThreadPool將一些線程推入隊列。並處理序列。避免寫入數據庫併發。但是我無法在MSDN中清楚地看到一些例子。有人知道。現在我只有2個方法異步。裏面有寫數據庫的指令。ThreadPool Windows phone App 8.1

回答

0

如果你想執行的方法順序(從任何線程),你可以使用SemaphoreSlim

/// <summary> 
    /// Semaphore to block access method. Only one thread at a time can execute this part of code. 
    /// </summary> 
    private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); 

    public async Task AsyncMethod() 
    { 
     await Task.Run(async() => 
     { 
      await _semaphore.WaitAsync(); 

      // TODO critical code 

      _semaphore.Release(); 
     }); 
    }