>>115
FooをファイナライザでDisposeしてちゃだめでしょ。
ThirdもIDisposableを実装して、IDisposable.DisposeでFoo.Dispose()を呼ばないと。