В продолжении темы
http://rsdn.org/forum/dotnet/7753095.1Автор: igor-booch
Дата: 13.06.20
Создал минимальное воспроизводящее приложение.
Условия воспроизведения:
1) Visual Studio 2017
2) Приложение WPF
3) Запуск приложение под отладчиком
4) код окна WPF
using System.Windows;
namespace ReproduceFinalizerMemoryLeak
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
do
{
Item item = new Item();
} while (true);
InitializeComponent();
}
}
public class Item
{
private byte[] _bytes;
public Item()
{
_bytes = new byte[10000];
}
~Item()
{
}
}
}
Что присходит:
Этот код отваливается с OutOfMemoryException. Финализаторы Item() не вызываются.
В моем реальном WPF приложении утечка памяти просходит без отладки и в более мягких условиях, но проявления те же: финализаторы не вызываются, происходит учечка памяти.