Tôi đang tìm kiếm một cách để khởi động lại một chủ đề đó đã được chặn lại bởi Abort() ..Khởi động lại a thread trong .NET (sử dụng 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";
}
}
Bất kỳ ý tưởng?
Câu trả lời này là giải pháp khác hơn là câu trả lời thực. thậm chí không giải thích lý do tại sao anh ta nhận được lỗi Groo đã đúng, – Trap
Bạn nói đúng, nhưng khi tôi là một người mới bắt đầu lập trình, tôi đã gặp một số vấn đề tương tự, tôi đã đọc nhiều giải pháp như vậy. bạn hoàn toàn đúng, giải pháp của tôi chỉ là một cách giải quyết.Nhưng cơ chế mà groo mô tả quá phức tạp để tôi hiểu trong thời gian lập trình-newb của tôi. Vì vậy, tôi khó khăn hơn, có thể tốt hơn là cung cấp một câu trả lời đơn giản (hoặc Workaround workaround) cho một lập trình viên không có nhiều kinh nghiệm – Emiswelt
Đây là những thứ làm cho các lập trình viên xấu Họ không đầu tư đủ thời gian để hiểu những gì họ đang làm. o sẽ làm sạch Thread.Abort mess của bạn khi bạn đi? –