C/Visual C - Ayudadme por favor !!!! (Threads)

 
Vista:

Ayudadme por favor !!!! (Threads)

Publicado por LuisMiguel (2 intervenciones) el 16/11/2000 00:00:00
Me podriais decir si existe alguna forma de matar desde un Thread un proceso que se está ejecutando en otro, de forma que el 2º thread se siga ejecutando normalmente???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Terminar un proceso desde un hilo (thread) sin interrumpir la ejecución del segundo hilo

Publicado por Alejandro (913 intervenciones) el 04/09/2024 17:33:59
Sí, Luis, es posible matar un proceso desde un hilo (thread) en otro lenguaje de programación como C++. Sin embargo, es importante tener en cuenta que matar un proceso de forma abrupta puede tener consecuencias no deseadas, como dejar recursos sin liberar o dejar el sistema en un estado inconsistente. Por lo tanto, se recomienda utilizar métodos más seguros y controlados para finalizar un proceso.

En C++, puedes utilizar la función `TerminateProcess` de la API de Windows para terminar un proceso desde otro hilo. Esta función toma como argumentos el identificador del proceso y el código de salida. Aquí tienes un ejemplo de cómo puedes utilizarla:

1
2
3
4
5
6
7
8
9
10
11
#include <windows.h>
 
void TerminateProcessFromThread(DWORD processId)
{
    HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, processId);
    if (hProcess != NULL)
    {
        TerminateProcess(hProcess, 0);
        CloseHandle(hProcess);
    }
}

En este ejemplo, la función `TerminateProcessFromThread` recibe el identificador del proceso que deseas terminar. Luego, utiliza la función `OpenProcess` para obtener un handle al proceso y la función `TerminateProcess` para terminarlo. Finalmente, se cierra el handle del proceso con `CloseHandle`.

Es importante tener en cuenta que el uso de `TerminateProcess` debe ser cuidadoso y se recomienda utilizar métodos más controlados para finalizar un proceso, como enviar una señal o mensaje al proceso para que se cierre de forma adecuada. Esto permite que el proceso tenga la oportunidad de liberar recursos y realizar tareas de limpieza antes de finalizar.

Recuerda que matar un proceso de forma abrupta puede tener consecuencias no deseadas, por lo que se recomienda utilizar métodos más seguros y controlados siempre que sea posible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar