Perdite di handle di eventi in un'applicazione basata su .NET Framework 4
Questo articolo consente di risolvere le perdite di eventi in un'applicazione basata su .NET Framework 4.
Versione originale del prodotto: Microsoft .NET Framework 4
Numero KB originale: 2973904
Riepilogo
Questo problema può verificarsi anche quando l'applicazione è inattiva. Inoltre, se si esamina il processo di questa applicazione usando uno strumento di debug, lo stack sarà simile al seguente in cui vengono allocati gli handle di eventi:
ntdll! ZwCreateEvent
kernelbase! CreateEventExW+0x6e
kernelbase! CreateEventW+0x27
Clr! CLREvent::CreateManualEvent+0x3b
Clr! Thread::AllocHandles+0xa3
Clr! Thread::CreateNewOSThread+0x85
Clr! Thread::CreateNewThread+0xa9
Clr! ThreadpoolMgr::CreateUnimpersonatedThread+0xbb
Clr! ThreadpoolMgr::CreateWorkerThread+0x19
Clr! ThreadpoolMgr::EnsureEnoughWorkersWorking+0x116
Clr! ThreadpoolMgr::AddWorkingWorker+0x12
Clr! UnManagedPerAppDomainTPCount::D ispatchWorkItem+0x266
Clr! ThreadpoolMgr::NewWorkerThreadStart+0x20b
Clr! ThreadpoolMgr::WorkerThreadStart+0x3d1
Clr! Thread::intermediateThreadProc+0x4b
kernel32! BaseThreadInitThunk+0xe
ntdll!__RtlUserThreadStart+0x70
ntdll!_RtlUserThreadStart+0x1b
Causa
Il problema si verifica perché .NET Framework non recupera immediatamente la memoria associata a questi handle. Gli handle vengono recuperati solo quando viene eseguita una Garbage Collection. Per alcune applicazioni, Garbage Collection si verifica raramente, perché l'applicazione alloca raramente oggetti gestiti.
Risoluzione
Per risolvere questo problema, eseguire l'aggiornamento da .NET Framework 4 alla versione più recente di .NET Framework 4.5.
Soluzione alternativa
Per risolvere questo problema in .NET Framework 4, chiamare il GC.Collect()
metodo quando l'applicazione deve recuperare immediatamente gli handle.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per