Avatar ·

كيفية استدعاء طريقة غير متزامنة من طريقة متزامنة في C#؟

مرحبًا بالجميع! أنا مطور C# مبتدئ واجهت مشكلة. لدي تطبيق WPF أستخدم فيه Entity Framework للعمل مع قاعدة البيانات. أريد استخدام الطرق غير المتزامنة مثل `ToListAsync()` و `SaveChangesAsync()` لتجنب حظر واجهة المستخدم. ومع ذلك، لدي طريقة متزامنة موجودة يتم استدعاؤها من مكتبة خارجية (على سبيل المثال، معالج حدث زر لا يدعم 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` في