मैं एक छोटे से चैट एप्लिकेशन लिख रहा हूँ, और मैं इस ईवेंट हैंडलर है:सी #, ईवेंट हैंडलर्स और थ्रेडिंग
void o_Typing(object sender, EventArgs e)
{
MessageBox.Show("Fired!");
this.Text = "Fired!";
}
o_Typing
एक वर्ग TabPage
से व्युत्पन्न में एक विधि है। असल में, मैं चाहता हूं कि प्रत्येक वार्तालाप का अपना टैब हो।
ईवेंट हैंडलर को मेरे चैट ऑब्जेक्ट द्वारा निकाल दिया जाता है, जो किसी अन्य थ्रेड में चल रहा है। मेरे पास यूआई के लिए 1 धागा है, और प्रत्येक चैट वार्तालाप के लिए एक और धागा (नए डेटा के लिए सर्वर को मतदान करने के लिए)
जब ईवेंट निकाल दिया जाता है, तो MessageBox
पॉप अप हो जाता है, लेकिन टैब कैप्शन नहीं बदलता है। घटना को एक बार निकाल दिया गया है, यह फिर से कभी नहीं आग लगती है, मुझे विश्वास है कि घटना कार्यकर्ता धागे में बुलाया जा रहा है, हालांकि इसे यूआई थ्रेड में परिभाषित किया गया है।
मैं अपने कार्यक्रमों को कार्यकर्ता धागे से कैसे बुला सकता हूं, और यूआई थ्रेड पर निष्पादित करने के लिए Invoke()
का उपयोग कर सकता हूं?
धन्यवाद, मैंने ईवेंट हैंडलर पर Invoke() का उपयोग किया और यह एक आकर्षण की तरह काम किया। –