Utilizzo socket C# (che utilizzano IOCP per le richiamate). Voglio un metodo per determinare il tempo che la mia logica di elaborazione è in ritardo. C'è una chiamata API che potrebbe darmi la dimensione delle operazioni completate che non sono state elaborate dai callback?È possibile sapere quante operazioni completate non elaborate vengono accodate su un IOCP tramite una chiamata API?
Ho preso in considerazione l'utilizzo di un'operazione simile a un battito cardiaco che vorrei postare in coda e determinare se sono indietro per il tempo trascorso alla sua richiamata, ma preferirei un percorso più diretto se possibile (Plus I don ' t avere un facile accesso al comando IOCP che controlli .Net internals).
Questo è abbastanza pulito, ma .NET non espone il suo creato internamente 'm_hIOCP'. – dtb
questo è fantastico! @dtb nessun problema, posso estrarlo con la riflessione. ma a prescindere, penso che l'uso di un battito cardiaco mi darà una visione più realistica di quanto io sia indietro. ma l'implementazione del battito cardiaco sarà ancora più fastidiosa di questo semplice metodo poiché non ho modo di implementare un gestore personalizzato sul threadpool IOCP .net. dovrei usare una connessione socket al mio server per implementare l'heartbeat. –
Se è possibile estrarre l'handle con la riflessione, si prega di postare il codice da qualche parte. Ci sto provando da secoli. – dtb