Red de conocimiento informático - Aprendizaje de programación - Se produjo un error al escribir archivos de registro en subprocesos múltiples de MFC

Se produjo un error al escribir archivos de registro en subprocesos múltiples de MFC

Registro de código:: Hay un problema grave en WriteLog(CString strLogInfo)

Pasaste la dirección de la variable temporal de la pila al hilo para ejecutar, porque el hilo se ejecuta de forma asincrónica. es decir, es posible que la función WriteLog haya regresado y el hilo no haya comenzado a ejecutarse. Después de que WriteLog regresa, la variable strLogInfo se borra automáticamente, por lo que los parámetros que pasó al hilo en realidad no son válidos y el acceso fallará;

Hay dos métodos de modificación

1. Use una nueva cadena CString, luego pásela al hilo y luego elimínela después de que el hilo se agote

2. el hilo para salir, pero de esta manera WriteLog La función se atascará y esperará hasta que se complete la operación de escritura antes de salir

El primer método será mucho más sencillo de cambiar, cámbielo a AfxBeginThread(ThreadProc10, new CString (strLogInfo));

Luego simplemente elimine strLogInfo en el hilo