[英]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.