Найдено результатов: 1

Может ли использование лямбд в качестве обработчиков событий вызвать утечку памяти?

Скажем, у нас есть следующий метод:

private MyObject foo = new MyObject();

// and later in the class

public void PotentialMemoryLeaker(){
  int firedCount = 0;
  foo.AnEvent += (o,e) => { firedCount++;Console.Write(firedCount);};
  foo.MethodThatFiresAnEvent();
}

Если класс с этим методом создается экземпляр и метод PotentialMemoryLeaker вызывается несколько раз, происходит ли утечка памяти?

Есть ли какой-нибудь способ отцепить этот обработчик событий lambda после того, как мы закончим вызывать MethodThatFiresAnEvent ?

memory-leaks   lambda   event-handling    

453   5   01:32, 3rd August, 2020