C# में async और await का उपयोग कब और कैसे करें? उदाहरणों के साथ समझाएं
सभी को नमस्कार! मैं एक शुरुआती C# डेवलपर हूं, और async/await को समझ नहीं पा रहा हूं। मैंने दस्तावेज़ीकरण पढ़ा, लेकिन फिर भी सवाल बने हुए हैं।
मेरे पास एक WinForms एप्लिकेशन है जो वेब सर्वर से डेटा लोड करता है। जब मैं लोडिंग मेथड को कॉल करता हूं, तो इंटरफ़ेस कुछ सेकंड के लिए हैंग हो जाता है। यह मेरा वर्तमान कोड है:
```csharp
private void Button_Click(object sender, EventArgs e)
{
var data = DownloadData("https://api.example.com/data");
textBox1.Text = data;
}
private string DownloadData(string url)
{
using (var client = new WebClient())
{
return client.DownloadString(url);
}
}
```
मैंने सुना है कि async/await UI हैंगिंग की समस्या को हल करता है। लेकिन मैं समझ नहीं पा रहा:
1. async मेथड को सही तरीके से कैसे घोषित करें? क्या हमेशा Task लौटाना जरूरी है?
2. await का उपयोग कब करें और कब नहीं? अगर मैं await हटा दूं, तो मेथड फिर भी काम करता है, लेकिन मुझे कोई अंतर नहीं दिखता।
3. क्या async void बनाया जा सकता है? मैंने उदाहरणों में ऐसा देखा है, लेकिन कहते हैं कि यह खराब प्रैक्टिस है।
4. कंपाइलर क्यों...