Dispose() защищенный Метод

protected Dispose ( bool disposing ) : void
disposing bool
Результат void
        public void TestSubFileStream()
        {
            const int BlockSize = 256;
            MemoryPoolTest.TestMemoryLeak();
            //string file = Path.GetTempFileName();
            //System.IO.File.Delete(file);
            try
            {
                //using (FileSystemSnapshotService service = FileSystemSnapshotService.CreateFile(file))
                using (TransactionalFileStructure service = TransactionalFileStructure.CreateInMemory(BlockSize))
                {
                    using (TransactionalEdit edit = service.BeginEdit())
                    {
                        SubFileStream fs = edit.CreateFile(SubFileName.Empty);
                        BinaryStream bs = new BinaryStream(fs);

                        for (int x = 0; x < 20000000; x++)
                            bs.Write(1L);

                        bs.Position = 0;

                        BinaryStreamBenchmark.Run(bs, false);

                        bs.Dispose();
                        fs.Dispose();
                        edit.CommitAndDispose();
                    }
                }
            }
            finally
            {
                //System.IO.File.Delete(file);
            }

            MemoryPoolTest.TestMemoryLeak();
        }
        public void Test()
        {
            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
            //string file = Path.GetTempFileName();
            //System.IO.File.Delete(file);
            try
            {
                //using (FileSystemSnapshotService service = FileSystemSnapshotService.CreateFile(file))
                using (TransactionalFileStructure service = TransactionalFileStructure.CreateInMemory(BlockSize))
                {
                    using (TransactionalEdit edit = service.BeginEdit())
                    {
                        SubFileStream fs = edit.CreateFile(SubFileName.CreateRandom());
                        BinaryStream bs = new BinaryStream(fs);
                        bs.Write((byte)1);
                        bs.Dispose();
                        fs.Dispose();
                        edit.CommitAndDispose();
                    }
                    {
                        ReadSnapshot read = service.Snapshot;
                        SubFileStream f1 = read.OpenFile(0);
                        BinaryStream bs1 = new BinaryStream(f1);
                        if (bs1.ReadUInt8() != 1)
                            throw new Exception();

                        using (TransactionalEdit edit = service.BeginEdit())
                        {
                            SubFileStream f2 = edit.OpenFile(0);
                            BinaryStream bs2 = new BinaryStream(f2);
                            if (bs2.ReadUInt8() != 1)
                                throw new Exception();
                            bs2.Write((byte)3);
                            bs2.Dispose();
                        } //rollback should be issued;
                        if (bs1.ReadUInt8() != 0)
                            throw new Exception();
                        bs1.Dispose();

                        {
                            ReadSnapshot read2 = service.Snapshot;
                            SubFileStream f2 = read2.OpenFile(0);
                            BinaryStream bs2 = new BinaryStream(f2);
                            if (bs2.ReadUInt8() != 1)
                                throw new Exception();
                            if (bs2.ReadUInt8() != 0)
                                throw new Exception();
                            bs2.Dispose();
                        }
                    }
                    using (TransactionalEdit edit = service.BeginEdit())
                    {
                        SubFileStream f2 = edit.OpenFile(0);
                        BinaryStream bs2 = new BinaryStream(f2);
                        bs2.Write((byte)13);
                        bs2.Write((byte)23);
                        bs2.Dispose();
                        edit.RollbackAndDispose();
                    } //rollback should be issued;
                }
            }
            finally
            {
                //System.IO.File.Delete(file);
            }

            Assert.AreEqual(Globals.MemoryPool.AllocatedBytes, 0L);
            Assert.IsTrue(true);
        }