This commit is contained in:
sunkaixuan 2019-05-19 09:14:04 +08:00
parent d456d50b9d
commit 37f2a4fd98
6 changed files with 461 additions and 23 deletions

View File

@ -197,9 +197,10 @@ namespace OrmTest
SqlSugarClient db = GetInstance();
var task1 = db.Queryable<Order>().FirstAsync();
task1.Wait();
var task2 = db.Queryable<Order>().Where(it => it.Id == 1).ToListAsync();
task1.Wait();
task2.Wait();
Console.WriteLine("#### Async End ####");

View File

@ -140,6 +140,8 @@
<Compile Include="OldTest\UnitTest\Setting\MapColumn.cs" />
<Compile Include="OldTest\UnitTest\Setting\MapTable.cs" />
<Compile Include="OldTest\UnitTest\Update.cs" />
<Compile Include="UnitTest\UThread3.cs" />
<Compile Include="UnitTest\UThread2.cs" />
<Compile Include="UnitTest\UValidate.cs" />
<Compile Include="UnitTest\UJson.cs" />
<Compile Include="UnitTest\Main.cs" />

View File

@ -27,6 +27,8 @@ namespace OrmTest
{
Json();
Thread();
Thread2();
Thread3();
}
}
}

View File

@ -10,7 +10,7 @@ namespace OrmTest
public partial class NewUnitTest
{
public static SqlSugarClient tdb0 => new SqlSugarClient(new ConnectionConfig()
public static SqlSugarClient simpleDb => new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
@ -25,7 +25,7 @@ namespace OrmTest
}
}
});
public static SqlSugarClient tdb1 => new SqlSugarClient(new ConnectionConfig()
public static SqlSugarClient ssDb => new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
@ -41,7 +41,7 @@ namespace OrmTest
}
}
});
public static SqlSugarClient tdb2 = new SqlSugarClient(new ConnectionConfig()
public static SqlSugarClient singleDb = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
@ -56,7 +56,7 @@ namespace OrmTest
}
}
});
public static SqlSugarClient tdb3 = new SqlSugarClient(new ConnectionConfig()
public static SqlSugarClient singleAndSsDb = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
@ -91,7 +91,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
simpleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(1);
}
@ -100,7 +100,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
simpleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(10);
}
@ -109,7 +109,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
simpleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(6);
}
@ -127,7 +127,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
singleAndSsDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(1);
}
@ -136,7 +136,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
singleAndSsDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(10);
}
@ -145,7 +145,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
singleAndSsDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(6);
}
@ -163,7 +163,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(1);
}
@ -172,7 +172,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(10);
}
@ -181,7 +181,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
System.Threading.Thread.Sleep(6);
}
@ -237,7 +237,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
simpleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(1);
}
@ -246,7 +246,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); ;
simpleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); ;
System.Threading.Thread.Sleep(10);
}
@ -255,7 +255,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb0.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
simpleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(6);
}
@ -273,7 +273,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleAndSsDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(1);
}
@ -282,7 +282,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleAndSsDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(10);
}
@ -291,7 +291,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb3.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleAndSsDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(6);
}
@ -309,7 +309,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(1);
}
@ -318,7 +318,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(10);
}
@ -327,7 +327,7 @@ namespace OrmTest
{
for (int i = 0; i < 100; i++)
{
tdb2.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
System.Threading.Thread.Sleep(6);
}

View File

@ -0,0 +1,316 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
public partial class NewUnitTest
{
public static void Thread2()
{
Simple2();
IsShardSameThread2();
Single2();
SingleAndIsShardSameThread2();
SimpleAsync2();
IsShardSameThreadAsync2();
SingleAsync2();
SingleAndIsShardSameThreadAsync2();
}
private static void Simple2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void SingleAndIsShardSameThread2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void Single2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void IsShardSameThread2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToList();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void SimpleAsync2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait(); ;
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void SingleAndIsShardSameThreadAsync2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void SingleAsync2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
private static void IsShardSameThreadAsync2()
{
var t1 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(1);
}
});
var t2 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(10);
}
});
var t3 = new Task(() =>
{
for (int i = 0; i < 100; i++)
{
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
System.Threading.Thread.Sleep(6);
}
});
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
}
}
}

View File

@ -0,0 +1,117 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
public partial class NewUnitTest
{
public static void Thread3()
{
Console.WriteLine("Thread3");
SimpleAsync3();
IsShardSameThreadAsync3();
SingleAsync3();
SingleAndIsShardSameThreadAsync3();
}
private static async Task SimpleAsync3()
{
for (int i = 0; i < 100; i++)
{
await simpleDb.Queryable<Order>().Take(10).ToListAsync();
}
for (int i = 0; i < 100; i++)
{
await simpleDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
}
List<Order> orders = new List<Order>();
for (int i = 0; i < 100; i++)
{
orders = await simpleDb.Queryable<Order>().Take(10).ToListAsync();
}
if (orders.Count > 0)
{
Console.WriteLine("async is ok");
}
}
private static async Task SingleAndIsShardSameThreadAsync3()
{
for (int i = 0; i < 100; i++)
{
await singleAndSsDb.Queryable<Order>().Take(10).ToListAsync();
}
for (int i = 0; i < 100; i++)
{
await singleAndSsDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
}
List<Order> orders = new List<Order>();
for (int i = 0; i < 100; i++)
{
orders = await singleAndSsDb.Queryable<Order>().Take(10).ToListAsync();
}
if (orders.Count > 0)
{
Console.WriteLine("async is ok");
}
}
private static async Task SingleAsync3()
{
for (int i = 0; i < 100; i++)
{
await singleDb.Queryable<Order>().Take(10).ToListAsync();
}
for (int i = 0; i < 100; i++)
{
await singleDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
}
List<Order> orders = new List<Order>();
for (int i = 0; i < 100; i++)
{
orders = await singleDb.Queryable<Order>().Take(10).ToListAsync();
}
if (orders.Count > 0)
{
Console.WriteLine("async is ok");
}
}
private static async Task IsShardSameThreadAsync3()
{
for (int i = 0; i < 100; i++)
{
await ssDb.Queryable<Order>().Take(10).ToListAsync();
}
for (int i = 0; i < 100; i++)
{
await ssDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
}
List<Order> orders = new List<Order>();
for (int i = 0; i < 100; i++)
{
orders = await ssDb.Queryable<Order>().Take(10).ToListAsync();
}
if (orders.Count > 0)
{
Console.WriteLine("async is ok");
}
}
}
}