Avatar ·

C# में async Task<T> मेथड को synchronously कैसे execute करें?

सभी को नमस्ते! मैं C# (.NET Framework 4.7.2) में एक कंसोल एप्लिकेशन लिख रहा हूं और एक समस्या का सामना कर रहा हूं। मेरे पास एक async मेथड है जो Task रिटर्न करता है:\n\n```csharp\npublic async Task GetDataAsync()\n{\n using (var client = new HttpClient())\n {\n var result = await client.GetStringAsync("https://api.example.com/data");\n return result;\n }\n}\n```\n\nसमस्या यह है कि मैं इस मेथड को synchronous कॉन्टेक्स्ट से कॉल कर रहा हूं, जैसे क्लास के कंस्ट्रक्टर से या Main मेथड से (जो async नहीं है)। मैं कॉल करने वाले मेथड को async नहीं बना सकता क्योंकि इससे आर्किटेक्चर खराब हो जाएगा (उदाहरण के लिए, कंस्ट्रक्टर async नहीं हो सकता)।\n\nमैंने अलग-अलग तरीके आजमाए:\n- `GetDataAsync().Result` — प्रोग्राम हैंग हो जाता है (deadlock)।\n- `GetDataAsync().GetAwaiter().GetResult`