using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Uow;
using Xunit;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Abp.Test.Demo
{
public class ThreadDb_Test : YiAbpTestBase
{
///
/// 并发
///
///
[Fact]
public async Task Repository_Test()
{
try
{
var rep = GetRequiredService>();
List tasks = new List();
for (int i = 0; i < 10; i++)
{
tasks.Add(Task.Run(async () =>
{
await rep.GetListAsync();
}));
}
await Task.WhenAll(tasks);
await Console.Out.WriteLineAsync("成功");
}
catch
(Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
///
/// 工作单元
///
///
[Fact]
public async Task Uow_In_Test()
{
try
{
var rep = GetRequiredService>();
List tasks = new List();
for (int i = 0; i < 10; i++)
{
tasks.Add(Task.Run(async () =>
{
using (var uow = GetRequiredService().Begin(true, true))
{
await rep.GetListAsync();
await uow.CompleteAsync();
}
}));
}
await Task.WhenAll(tasks);
await Console.Out.WriteLineAsync("成功");
}
catch
(Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
///
/// 工作单元
///
///
[Fact]
public async Task Uow_Out_Test()
{
try
{
var rep = GetRequiredService>();
List tasks = new List();
using (var uow = GetRequiredService().Begin(true, true))
{
for (int i = 0; i < 10; i++)
{
tasks.Add(Task.Run(async () =>
{
await rep.GetListAsync();
await uow.CompleteAsync();
}));
}
}
await Task.WhenAll(tasks);
await Console.Out.WriteLineAsync("成功");
}
catch
(Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}