private void Form1_Load(object sender, EventArgs e) { List <(string, decimal)> lst = new List <(string, decimal)>(); EntityUtility.FileListInArrayWithPower(",1101(sd),1202*3,1301(手段)*.5,5202-1,4107*2.5,1703。", lst, 1); var t1 = typeof(List <int>); var t2 = typeof(List <short>); ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion); lockSlim.EnterWriteLock(); lockSlim.EnterReadLock(); lockSlim.ExitWriteLock(); if (null == f) { f = 0.5f; } var t = OwInitializer.BeginInitialize(); Matrix4x4 m1 = new Matrix4x4( 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7); Matrix4x4 m2 = new Matrix4x4( 0, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7); int rank0 = 100; //200基准30ms,1000基准5s Random rnd = new Random(); var mm = new MmoCanges <FastChangePositionBase>(); List <(Vector3, FastChangePositionBase)> dispare = new List <(Vector3, FastChangePositionBase)>(); List <(Vector3, FastChangePositionBase)> moved = new List <(Vector3, FastChangePositionBase)>(); List <(Vector3, FastChangePositionBase)> distroy = new List <(Vector3, FastChangePositionBase)>(); FastChangePositionBase[] arys = new FastChangePositionBase[2000]; for (int i = 0; i < 2000; i++) { var tmp = new FastChangePositionBase() { Position = new Vector3((float)rnd.NextDouble() * 400, (float)rnd.NextDouble() * 400, 0) }; arys[i] = tmp; mm.Change(tmp, 1, dispare, moved, distroy); dispare.Clear(); moved.Clear(); distroy.Clear(); } var bm = ObjectPool.Default; Stopwatch sw = Stopwatch.StartNew(); try { Parallel.For(0, 20000, new ParallelOptions() { MaxDegreeOfParallelism = (int)(Environment.ProcessorCount * 1), }, c => { using (var ch = ObjectPool.TakeObject <ClearHelper>()) { var tmp = arys[rnd.Next(2000)]; tmp.Position = new Vector3(tmp.Position.X + (float)rnd.NextDouble() * 2 - 1f, tmp.Position.Y + (float)rnd.NextDouble() * 2 - 1f, 0); var l1 = ch.TakeObjectAndReturn <List <(Vector3, FastChangePositionBase)> >(); var l2 = ch.TakeObjectAndReturn <List <(Vector3, FastChangePositionBase)> >(); var l3 = ch.TakeObjectAndReturn <List <(Vector3, FastChangePositionBase)> >(); mm.Change(tmp, 40, l1, l2, l3); l1.Clear(); l2.Clear(); l3.Clear(); } });