Поскольку тип события - автоматический сброс, имхо вы должны посмотреть на экземпляры класса AutoResetEvent.Не уверен насчет Core, но в Framework вы можете взять расширение NetExt и выполнять запросы в кучу.AutoResetEvent имеет приватное поле waitHandle
с IntPtr для дескриптора, который вы наблюдаете.
Итак, после запуска! Windex NexExt-запрос будет выглядеть так:
!wfrom -type System.Threading.AutoResetEvent where (waitHandle == 0000000000003760) select $addr(), $tohexstring(waitHandle)
Если NetExt не работает сЯдро вы можете сбросить все экземпляры AutoResetEvents в текстовый файл, как это, а затем найти ваше событие там.
.logopen c:\temp\autoresetevents.txt
.foreach (obj {!dumpheap -type AutoResetEvent -short}) {!do obj}
.logclose
При таком подходе вы сможете найти управляемый объект, который соответствует дескриптору.Вы также сможете увидеть корни с помощью! GCRoot.Но вы не сможете увидеть, где он создан.Вам нужно будет искать вокруг.Или вам нужно будет использовать другой подход, что-то с трассировкой распределения PerfView или, может быть, какие-то специальные точки останова.