[英]trigger an event when GC start
嗨,c# 中的一个小问题,是否可以在垃圾收集器开始工作时触发事件?
如果是,如何?
想象一下这段代码:
while(True){
if (Gc.IsWorking())
{
// some code
}
}
在单独的线程上运行并检测 gc 何时工作。 我知道当 gc 触发整个应用程序时,整个应用程序会暂停,但是我们可以如何为某些代码部分禁用它,比如使用unsafe ,这样我们就可以让那个线程工作吗?
有GC.TryStartNoGCRegion可以暂停 GC。 但这是针对需要非常低且可预测的延迟的非常特殊的场景。 我认为目的是拥有一组旋转的活动节点,并在节点离线旋转时执行任何 GC。
也可以使用本机代码。 我不希望 GC 知道或关心本机线程。
但也不是应该在任何常见场景中使用的解决方案。 对于 99% 的用例,优化分配模式可能就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.