C# WinForms में दूसरे थ्रेड से GUI कैसे अपडेट करें?
नमस्ते साथियों! मैं एक शुरुआती C# डेवलपर हूँ और एक ऐसी समस्या का सामना कर रहा हूँ जो मुझे पागल कर रही है। मेरे पास एक Windows Forms एप्लिकेशन है जो एक लंबी ऑपरेशन करता है (जैसे फ़ाइलों की बड़ी सूची प्रोसेस करना या इंटरनेट से डेटा लोड करना)। इंटरफ़ेस को हैंग होने से बचाने के लिए, मैं इस ऑपरेशन को `Task.Run` या `Thread` का उपयोग करके एक अलग थ्रेड में चलाता हूँ।
यहाँ मेरे कोड का एक सरल उदाहरण है:
```csharp
private void buttonStart_Click(object sender, EventArgs e)
{
Task.Run(() => LongRunningOperation());
}
private void LongRunningOperation()
{
for (int i = 0; i < 100; i++)
{
// कुछ काम
Thread.Sleep(100);
// ProgressBar अपडेट करने की कोशिश
progressBar1.Value = i;
// या Label
labelStatus.Text = $"प्रोसेस किया {i} में से 100";
}
}
```
लेकिन जब मैं एप्लिकेशन चलाता हूँ और बटन दबाता हूँ, तो यह एक अपवाद के साथ क्रैश हो जाता है:
**"System.InvalidOperationException: 'Cross-thread operation not valid: Control 'progress