Matando un hilo

Tengo el siguiente fragmento de código de un proyecto en el que estoy trabajando:

public void Start() { Thread t = new Thread(NotifyIfNecessary); Threads.Add(t); t.Start(); t.Abort()); } 

Lo que quiero es que el hilo ‘t’ ejecute el método NotifyIfNecessary y aborte solo después de que el método haya finalizado su ejecución. En mi código actual, t.Abort () se llama de forma prematura.

Esto se debe a que está creando un nuevo subproceso y lo está iniciando, y luego lo mata inmediatamente desde el subproceso en el que acaba de Thread.Abort() llamando al método Thread.Abort() . No necesitas hacer esto; su hilo terminará cuando NotifyIfNecessary haya completado la ejecución. Simplemente quite la línea t.Abort(); y su código debería funcionar correctamente.

En primer lugar, no debe llamar a abortar, ya que abortar se aplica solo al código de usuario fallido (ejecutado dentro de un dominio de aplicación separado). En su caso, simplemente permita que NotifyIfNecessary se ejecute hasta su finalización (es decir, no cancele la llamada). Hecho.

Pero quizás lo que realmente está tratando de hacer es que su hilo principal no continúe hasta que se complete el NotifyIfNecessary. Si ese es el caso, entonces llame a la secuencia “Unirse”.

No necesita llamar a Abortar, ya que el hilo se detendrá automáticamente cuando finalice NotifyIfNecessary.

Si desea que NotifyIfNecessary se complete, no aborte el hilo. Si desea que la función solo continúe después de completar la Notificación, use la función de unirse o no la llame en otro hilo.

No veo la necesidad de la llamada a Abort() . Una vez que NotifyIsNeccessary se complete, el hilo se completará de todos modos. ¿Está buscando esperar al final de Start() hasta que se complete el hilo?