मैं एक तरह से एक धागा है कि बीच में बंद करें() ...NET में एक धागा पुन: प्रारंभ हो
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";
}
}
किसी भी विचार से रोक दिया गया है को पुनः आरंभ करने के लिए देख रहा हूँ (सी # का उपयोग करके)?
यह उत्तर वास्तविक उत्तर से अधिक कामकाज है। यह भी समझाओ कि उसे एक त्रुटि क्यों मिलती है। ग्रू को यह सही मिला। – Trap
आप सही हैं, लेकिन जब मैं प्रोग्रामिंग शुरुआती था, तो मुझे कई समान समस्याएं थीं। मैं इस तरह के कई समाधानों को पढ़ रहा था, और हाँ, आप पूरी तरह से सही हैं, मेरा समाधान केवल एक कामकाज है। लेकिन जिन तंत्रों का वर्णन किया गया है वे मेरे प्रोग्रामिंग-नए समय में समझने के लिए बहुत जटिल थे। इसलिए, आप एक सरल "उत्तर" (या वर्कअराउंड) एक प्रोग्रामर के लिए इतना अनुभवी नहीं है। – Emiswelt
यह वह चीज है जो खराब प्रोग्रामर बनाती है। वे यह समझने के लिए पर्याप्त समय नहीं निवेश करते कि वे क्या कर रहे हैं। ओ तुम्हारा थ्रेड साफ करने जा रहा है। जब आप चले गए हैं तो गड़बड़ हो? –