0
我正在开发Windows手机应用程序。我一直在写数据库。但我知道不能写数据库并发。我应该使用ThreadPool将一些线程推入队列。并处理序列。避免写入数据库并发。但是我无法在MSDN中清楚地看到一些例子。有人知道。现在我只有2个方法异步。里面有写数据库的指令。ThreadPool Windows phone App 8.1
我正在开发Windows手机应用程序。我一直在写数据库。但我知道不能写数据库并发。我应该使用ThreadPool将一些线程推入队列。并处理序列。避免写入数据库并发。但是我无法在MSDN中清楚地看到一些例子。有人知道。现在我只有2个方法异步。里面有写数据库的指令。ThreadPool Windows phone App 8.1
如果你想执行的方法顺序(从任何线程),你可以使用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();
});
}