C# 实现IDisposable.Dispose以释放等待时的线程

C# 实现IDisposable.Dispose以释放等待时的线程,c#,multithreading,idisposable,C#,Multithreading,Idisposable,我的windows服务使用.Net托管对象,如套接字、线程、监视器和信号量。我有两个关于这些物体的问题 我们是否必须在使用上述托管对象的类上实现IDisposable.Dispose,以释放它们,以便在服务停止时提供帮助 我们还有线程在监视器上等待。如果我们在退出之前不停止/退出它们,垃圾收集器会清理它们吗 当你使用IDisPobles时,你应该把它们放在某个地方。如果它们是字段中的引用,则通常需要在该类中实现IDisposable并在其中进行处理。线程应该停止(例如使用重置事件)并加入。我的问

我的windows服务使用.Net托管对象,如套接字、线程、监视器和信号量。我有两个关于这些物体的问题

  • 我们是否必须在使用上述托管对象的类上实现IDisposable.Dispose,以释放它们,以便在服务停止时提供帮助

  • 我们还有线程在监视器上等待。如果我们在退出之前不停止/退出它们,垃圾收集器会清理它们吗


  • 当你使用IDisPobles时,你应该把它们放在某个地方。如果它们是字段中的引用,则通常需要在该类中实现IDisposable并在其中进行处理。线程应该停止(例如使用重置事件)并加入。

    我的问题是,我是否使用线程和监视器。作为字段等待,我是否必须在这些类上写入一次性数据,以便在服务停止之前清理它们。