C# में सिंक्रोनस मेथड से एसिंक्रोनस मेथड कैसे कॉल करें?
सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और एक समस्या का सामना कर रहा हूँ। मेरे पास एक WPF एप्लिकेशन है जिसमें मैं डेटाबेस के साथ काम करने के लिए Entity Framework का उपयोग करता हूँ। मैं एसिंक्रोनस मेथड जैसे `ToListAsync()`, `SaveChangesAsync()` का उपयोग करना चाहता हूँ ताकि UI थ्रेड ब्लॉक न हो।
हालांकि, मेरे पास एक मौजूदा सिंक्रोनस मेथड है जो बाहरी लाइब्रेरी से कॉल किया जाता है (उदाहरण के लिए, एक बटन इवेंट हैंडलर जो async को सपोर्ट नहीं करता)। इस मेथड के अंदर मुझे डेटाबेस से डेटा प्राप्त करने की आवश्यकता है। मैं एसिंक्रोनस मेथड `GetCustomersAsync()` को इस प्रकार कॉल करने का प्रयास कर रहा हूँ:
```csharp
public async Task
- > GetCustomersAsync()
{
using (var db = new MyDbContext())
{
return await db.Customers.ToListAsync();
}
}
public void ButtonClickHandler(object sender, EventArgs e)
{
// त्रुटि! सिंक्रोनस मेथड में await का उपयोग नहीं कर सकते
var customers = await GetCustomersAsync();
}
```
मैं समझता हूँ कि सिंक्रोनस मेथड में सीधे `await` नहीं जोड़ सकते।