コード例 #1
0
        public void SuccessfulDisposeTest()
        {
            TestItem item = new TestItem();

            Assert.IsFalse(item.HasReferences);
            TestObjectReference ref1 = new TestObjectReference(item);

            Assert.IsTrue(item.HasReferences);
            TestObjectReference ref2 = new TestObjectReference(item);

            Assert.IsTrue(item.HasReferences);
            ref1.Dispose();
            Assert.IsTrue(item.HasReferences);
            ref2.Dispose();
            Assert.IsFalse(item.HasReferences);
        }
コード例 #2
0
        public void SuccessfulFinalizeTest()
        {
            TestItem item = new TestItem();

            Assert.IsFalse(item.HasReferences);
            TestObjectReference ref1 = new TestObjectReference(item);

            Assert.IsTrue(item.HasReferences);
            TestObjectReference ref2 = new TestObjectReference(item);

            Assert.IsTrue(item.HasReferences);
            ref1 = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Assert.IsTrue(item.HasReferences);
            ref2 = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Assert.IsFalse(item.HasReferences);
        }