如何在删除对象时终止任务? C#

How do I terminate a task upon object deletion? c#

考虑以下 class

class Melody
{
    public Melody()
    {
        Task.Factory.StartNew(()=>play_melody_in_loop());

    }
}

play_melody_in_loop 循环播放旋律并且永远不会完成。

Melody 的实例在超出范围时可以由 GC 收集。如果发生这种情况,我想停止播放。

我可以避免实施 IDisposable 吗?

我需要的功能是~Melody()。与 Dispose().

不同,它不必手动调用

感谢 Denis Yarkovoy