public void TestObjectPool() { var pool = new ObjectFactory <byte[], ByteArrayShell>(new ByteArrayFactory()); ByteArrayShell data1 = pool.Spawn(); Assert.AreEqual(10, data1.Length); _Set(data1); _Set2(data1); data1 = null; System.GC.Collect(); System.GC.WaitForFullGCComplete(); ByteArrayShell data2 = pool.Spawn(); Assert.AreEqual(8, data2[0]); ByteArrayShell data3 = pool.Spawn(); Assert.AreEqual(0, data3[0]); }
private static void _Set(ByteArrayShell data) { data[0] = 9; data[1] = 8; data[2] = 7; data[3] = 6; data[4] = 5; data[5] = 4; data[6] = 3; data[7] = 2; data[8] = 1; data[9] = 0; }
private static void _Set2(ByteArrayShell data) { data[0] = 8; }