نقل قول: استفاده از async و await
بله، به نظر میرسد که از کلیدواژه await به درستی استفاده کردهاید. در این کد، شما از await برای انجام عملیات همزمان و غیرهمزمان استفاده میکنید، که به صورت صحیح است. این کلیدواژه به برنامه اجازه میدهد که منتظر اتمام عملیاتهای آسنکرون وب (مانند درخواست HTTP) باشد و بدون بلاک کردن اجرای برنامه ادامه پیدا کند.
از آنجا که شما در اینجا از await در توابع async برای انجام کارهای I/O-bound استفاده میکنید (مانند ارسال درخواست HTTP)، این نیز بهینهسازی مهمی است تا اطمینان حاصل شود که رابط کاربری برنامه توسط عملیاتهای آسنکرونی بلاک نشود و به طور پیشرفته به این عملیاتها واکنش نشان دهد. از این به بعد، میتوانید از کلیدواژه await برای همگامسازی عملیاتهای آسنکرونی در برنامههای خود استفاده کنید.
نقل قول:
نوشته شده توسط
mehdininja
سلام دوستان لطفا بفرمایید ایا من به صورت صحیح از کد await استفاده کردم ؟
private async void btnSendSms_Click(object sender, RoutedEventArgs e)
{
try
{
WebRequest request = WebRequest.Create("http://test.com/services.jspd");
string[] rcpts = listbox1.Items.OfType<string>().ToArray();
string json = JsonConvert.SerializeObject(rcpts);
request.Method = "POST";
string postData = "op=send&uname=test&pass=test&message=" + txtSMS.Text + "&to=" + json + "&from=" + cmbNumbers.Text;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = await request.GetRequestStreamAsync();
await dataStream.WriteAsync(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = await request.GetResponseAsync();
dataStream = response.GetResponseStream();
dataStream.Close();
response.Close();
}
catch
{
}
}