Abbiamo sviluppato una piccola suite di test per il nostro motore di rendering dell'interfaccia utente Windows Form che consente di misurare le prestazioni e rilevare perdite di memoria durante l'esecuzione di test case in modo automatico. Ora vorremmo verificare anche la presenza di perdite. Sulla piattaforma desktop possiamo utilizzare questo codice:Determinare il numero di handle GDI e oggetti USER
[DllImport("User32")]
private extern static int GetGuiResources(IntPtr hProcess, int uiFlags);
using (var process = Process.GetCurrentProcess())
{
var gdiHandles = GetGuiResources(process.Handle, 0);
var userHandles = GetGuiResources(process.Handle, 1);
}
Questo metodo non sembra essere disponibile in Windows Mobile. C'è un altro modo per determinare questi valori a livello di codice su Windows Mobile/CE?
Per quanto riguarda il tuo approccio, questo mi richiederebbe di riscrivere l'intera gestione delle risorse nella nostra applicazione attualmente gestita da Windows Forms (da qualche parte in profondità in 'Pen',' Graphics' e 'Bitmap') - solo per nell'interesse del test per la gestione delle perdite di risorse. Poiché tali test vengono solitamente eseguiti poco prima che venga rilasciata una nuova versione, osserverò piuttosto il comportamento delle applicazioni con gli strumenti esistenti. Comunque, grazie per il tuo suggerimento, apprezzo lo sforzo. – Gene
Certo, non farlo prima di distribuire, no. Tuttavia, questo sarebbe un design migliore da tenere a mente per la tua applicazione. Pensa alle versioni future. :) – jp2code