Sto cercando un modo per riavviare un filo che è stato fermato da Abort() ..Riavvio di un filo a .NET (con C#)
public partial class MyProgram : Form
{
private Thread MyThread = new Thread(MyFunction);
private System.Windows.Forms.Button startStopBtn = new System.Windows.Forms.Button();
public MyProgram()
{
MyThread.Start();
startStopBtn += new EventHandler(doStop);
startStopBtn.Text = "Stop";
}
private static void MyFunction()
{
// do something
}
private void doStop(object sender, EventArgs e)
{
MyThread.Abort();
startStopBtn -= new EventHandler(doStop);
startStopBtn += new EventHandler(doStart);
startStopBtn.Text = "Start";
}
private void doStart(object sender, EventArgs e)
{
MyThread.Start(); // << Error returned when clicking the button for 2nd time
startStopBtn -= new EventHandler(doStart);
startStopBtn += new EventHandler(doStop);
startStopBtn.Text = "Stop";
}
}
Qualche idea?
Questa risposta è più una soluzione alternativa che una risposta reale. Non ho nemmeno spiegato il motivo per cui ha un errore Groo ha ragione, – Trap
Hai ragione, ma quando ero un principiante di programmazione, avevo molti problemi simili: stavo leggendo molte soluzioni come quella di Groo, e sì, hai perfettamente ragione, la mia soluzione è solo una soluzione. Ma i meccanismi che Groo descrive erano troppo complessi per me da comprendere nella mia programmazione, nuovi tempi. Quindi, forse, sarebbe meglio fornire una semplice "risposta" (o soluzione alternativa) per un programmatore non così esperto – Emiswelt
Questa è la roba che rende i programmatori cattivi, non investono abbastanza tempo per capire cosa stanno facendo. o sta per ripulire il tuo thread.Abort casino quando te ne sei andato? –