2015-08-24 198 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(); 
     }); 
    }