Действие, закрытие и сборка мусора в C #

Нужно ли мне задать для MyAction значение null, чтобы сборка мусора могла продолжить работу с любым из этих классов?

Меня меньше беспокоит, когда оба класса должны иметь почти одинаковую продолжительность жизни. Мой вопрос более уместен, когда продолжительность жизни Class1 намного больше, чем Class2, или когда продолжительность жизни Class2 намного больше, чем Class1.

Код здесь урезан. Предположим, что и Class1, и Class2 содержат другие члены и методы, которые могут повлиять на их продолжительность жизни.

public class Class1 : IDisposable
{
    public Action<string> MyAction { get; set; }

    // Is this necessary?
    public void Dispose()
    {
        MyAction = null;
    }
}

public class Class2
{
    string _result = string.Empty;

    public void DoSomething()
    {
        Class1 myClass1 = new Class1();
        myClass1.MyAction = s => _result = s;
        myClass1.Dispose();
    }
}
15
задан Paul Matovich 17 November 2011 в 17:27
поделиться