Si el programa original está trabajando bien, después que es bueno. Usted podría dejar bastante buen solo, pero todavía pienso que usted debe cambiar su lógica del hilo de rosca para estar más orientado al objeto como he mencionado. Tal y como están las cosas, es duro coger cómo las cosas trabajan de mirar su código: usted tiene UI mezclado con la funcionalidad de nivel inferior. Una clase del hilo de rosca modulariza todo tanto mejor y lo hace para una lectura, por lo tanto un depuración más fáciles si algo necesita mirar más adelante.
Pero hey, es su proyecto…:)
>> ¿usted tiene idea porqué, cuando es terminada chascando el botón de “x”, la depuración indica escapes de memoria?
Veo el siguiente después de que encienda la depuración, presiono la tecla de partida, después cercano el app:
¡Escapes de memoria detectados!
Descargando objetos - >
{542} bloque normal en 0x00DB16A0, 16 octetos de largo.
Datos:
<>bsp;
 
;  
;
 
;  
; > A8 15 CD CD CD CD CD CD CD CD CD CD CD CD del DB 00
{541} bloque normal en 0x0003FBE8, 32 octetos de largo.
Datos:
<>bsp;
 
;  
;
 
;  
; > A0 16 DB 00 00 00 00 00 00 00 00 00 00 00 00 00
{526} bloque normal en 0x00DB3FA0, 28 octetos de largo.
Datos:
<>bsp;
 
;  
;
 
;  
; > 00 00 00 00 CD CD CD CD CD CD CD CD E8 FB 03 00
Descarga del objeto completa.
Agrego tan el siguiente a CWinThreadTestApp:: InitInstance ():
_CrtSetBreakAlloc (542);
_CrtSetBreakAlloc (541);
_CrtSetBreakAlloc (526);
Ahora en que se enciende la depuración, consigo inmediatamente una rotura de la eliminación de errores en la línea:
OpRequestQ = (queue*
)
nueva
coleta
; //
[
MAX_CONCURRENT_POLLS+1];
Así pues, agregar
si cancelación OpRequestQ (de OpRequestQ);
a su destructor:) el _CrtSetBreakAlloc es realmente una gran función para hacer uso extenso de cuando es necesaria:)