Explore Library
Code Quiz

Event Subscription Memory Leak

Spot why this publisher keeps subscribers alive and leaks memory in .NET.

Codecsharp
public class DataProcessor : IDisposable
{
    private readonly DataSource _source;

    public DataProcessor(DataSource source)
    {
        _source = source;
        _source.DataReceived += OnDataReceived;
    }

    private void OnDataReceived(object sender, EventArgs e)
    {
        // process data...
    }

    public void Dispose()
    {
        // nothing to clean up
    }
}

What is the bug in this code that causes a memory leak?