Sobes.tech
Middle

Чӣ гуна калимаи калидии async ва оператори await дар C# кор мекунанд?

sobes.tech AI

Ҷавоб аз AI

async نشان می‌دهد که روش به صورت ناهمزمان است، که امکان استفاده از await در آن را فراهم می‌کند. این خود روش را ناهمزمان نمی‌کند، اما به کامپایلر اجازه می‌دهد یک ماشین حالت تولید کند که اجرای آن را مدیریت می‌کند.

await قبل از عبارتی که Task یا Task<T> برمی‌گرداند، استفاده می‌شود. این اجرای روش async جاری را تا زمانی که وظیفه مورد انتظار کامل نشود، متوقف می‌کند، بدون اینکه نخ اجرا را مسدود کند. پس از اتمام وظیفه، اجرای روش از بعد await ادامه می‌یابد. اگر وظیفه نتیجه‌ای برگرداند (Task<T>await این نتیجه را برمی‌گرداند.

public async Task<int> GetDataAsync()
{
    // عملیات ناهمزمان
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // ادامه پس از پایان GetStringAsync
    // پردازش نتیجه
    return result.Length; 
}