C# 如何减少垃圾收集对时间相关应用程序的影响

C# 如何减少垃圾收集对时间相关应用程序的影响,c#,.net,multithreading,garbage-collection,real-time,C#,.net,Multithreading,Garbage Collection,Real Time,我们有一个桌面应用程序,除其他外,在看门狗激活安全功能后,每隔500毫秒必须重置一个看门狗定时器 它通常工作正常,但在某些情况下,看门狗会在某些机器上开火。事实证明,垃圾收集器执行其工作需要500毫秒多一点,并且它会阻塞所有应用程序线程 有没有办法减少它花在工作上的时间?由于这是一个连续的操作,我们无法禁用垃圾收集,因此我们需要一个不同的解决方案 我们没有触及GC设置,因此它们是默认设置。GC设置是否可以更改运行所需的时间,或者只是为了控制它何时被激活?有几种不同的垃圾收集器可供选择,测试哪种最

我们有一个桌面应用程序,除其他外,在看门狗激活安全功能后,每隔500毫秒必须重置一个看门狗定时器

它通常工作正常,但在某些情况下,看门狗会在某些机器上开火。事实证明,垃圾收集器执行其工作需要500毫秒多一点,并且它会阻塞所有应用程序线程

有没有办法减少它花在工作上的时间?由于这是一个连续的操作,我们无法禁用垃圾收集,因此我们需要一个不同的解决方案


我们没有触及GC设置,因此它们是默认设置。GC设置是否可以更改运行所需的时间,或者只是为了控制它何时被激活?

有几种不同的垃圾收集器可供选择,测试哪种最适合您。或者你可以把看门狗作为一个单独的应用程序?还是增加超时时间阅读此链接:什么类型的应用程序?GC有哪些设置(如果有)?您可能可以使用服务器GC解决这个问题,但我们无法确定。提供这样的软实时保证是非常值得怀疑的。你注意到基本的东西了吗?您是否禁用了分页文件?确保没有其他进程可以在该机器上运行?确保您始终有足够的可用RAM?如果不这样做,GC是你最小的问题。你可以看到他确实有比你更严重的问题: