再次优化代码附加单元测试
This commit is contained in:
parent
d3ee27f3ec
commit
022e063dad
|
@ -23,11 +23,11 @@ namespace ShardingCore.Core.Collections
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_copyList?.Count != _list.Count)
|
if (_copyList.Count != _list.Count)
|
||||||
{
|
{
|
||||||
lock (COPY_LOCK)
|
lock (COPY_LOCK)
|
||||||
{
|
{
|
||||||
if (_copyList?.Count != _list.Count)
|
if (_copyList.Count != _list.Count)
|
||||||
{
|
{
|
||||||
_copyList = _list.ToList();
|
_copyList = _list.ToList();
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace ShardingCore.Core.Collections
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<T> _copyList;
|
public List<T> _copyList=new List<T>(0);
|
||||||
|
|
||||||
public void Append(T value)
|
public void Append(T value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System.Diagnostics;
|
||||||
|
using ShardingCore.Core.Collections;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace ShardingCore.CommonTest
|
||||||
|
{
|
||||||
|
public class CommonTest
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void TestList()
|
||||||
|
{
|
||||||
|
var list = new List<string>(){"1","2","3"};
|
||||||
|
var safeReadAppendList = new SafeReadAppendList<string>(list);
|
||||||
|
Assert.True(safeReadAppendList.CopyList.Count==3);
|
||||||
|
for (int i = 0; i < list.Count; i++)
|
||||||
|
{
|
||||||
|
Assert.Equal(list[i],safeReadAppendList.CopyList[i]);
|
||||||
|
}
|
||||||
|
list.Add("4");
|
||||||
|
safeReadAppendList.Append("4");
|
||||||
|
Assert.True(safeReadAppendList.CopyList.Count==4);
|
||||||
|
for (int i = 0; i < list.Count; i++)
|
||||||
|
{
|
||||||
|
Assert.Equal(list[i],safeReadAppendList.CopyList[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Stopwatch sp = Stopwatch.StartNew();
|
||||||
|
for (int i = 0; i < 1000000000; i++)
|
||||||
|
{
|
||||||
|
var copyListCount = safeReadAppendList.CopyList.Count;
|
||||||
|
}
|
||||||
|
sp.Stop();
|
||||||
|
Console.WriteLine(sp.ElapsedMilliseconds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue