Avatar ·

C# WinForms में दूसरे थ्रेड से इंटरफ़ेस (GUI) कैसे अपडेट करें?

सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और WinForms पर एक छोटा एप्लिकेशन लिख रहा हूँ। मेरे पास एक बटन है, जिसे दबाने पर एक लंबी ऑपरेशन शुरू होती है (जैसे, इंटरनेट से डेटा लोड करना या बड़ी फ़ाइल प्रोसेस करना)। मैं चाहता हूँ कि इस ऑपरेशन के दौरान इंटरफ़ेस रिस्पॉन्सिव रहे, इसलिए मैं इसे `Task.Run` के माध्यम से एक अलग थ्रेड में चलाता हूँ। समस्या तब आती है जब मैं इस बैकग्राउंड थ्रेड से इंटरफ़ेस एलिमेंट्स (जैसे, ProgressBar, Label या TextBox) को अपडेट करने की कोशिश करता हूँ। एप्लिकेशन एक एक्सेप्शन के साथ क्रैश हो जाता है: "InvalidOperationException: Cross-thread operation not valid. Control 'progressBar1' accessed from a thread other than the thread it was created on." यहाँ मेरे कोड का उदाहरण है: ```csharp private void buttonStart_Click(object sender, EventArgs e) { Task.Run(() => DoWork()); } private void DoWork() { for (int i = 0; i <= 100; i++) { // लंबी कार्य का अनुकरण Thread.Sleep(50); // प्रोग्रेस-बार को अपडेट करने की कोशिश