Здравствуйте, alexandrovsasha, Вы писали:
A>Так нужно написать?
Нет. Нужно сделать так, что-бы GC.KeepAlive находился после unmanaged использования делегата. Вообще, GC.KeepAlive делать не обязательно. Достаточно лишь защитить объект от сборки мусора. Например, можно сохранить созданный делегат в поле класса (если класс имеет достаточное время жизни)
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.