View Full Version : سوال: await چیست و چگونه باید ازش استفاده کرد ؟!
drsina
سه شنبه 31 تیر 1393, 12:48 عصر
دوستان تا اونجا که من میدونم ، await برای متد های async استفاده میشه ! حالا باید یه کاری توو مایه های همگام سازی انجام بده .
دوستان اگر توضیحی ، مقاله ای ، یا مثالی دارند ، بگند :لبخند:
pedram.11
سه شنبه 31 تیر 1393, 12:54 عصر
سلام و درود
await نیست wait هست. بله برای به هنگام سازی در برنامه هایی که از multi threading استفاده میشه به کار میره. یه نمونه:
object lockObj=new object();
object _x;
object x
{
get{
lock(lockObj){
if(_x == null) Monitor.Wait(lockObj);
return _x;
}
}
set{
lock(lockObj){
_x=value;
if(value != null) Monitor.PulseAll(lockObj);
}
}
}
این نمونه موقع دریافت x اگر x تهی بود صبر میکنه تا وقتی که پر شه و بعد مقدار رو برمیگردونه
drsina
سه شنبه 31 تیر 1393, 13:11 عصر
ممنون ولی این مثال من await دیدم .
var resault = await webClient.UploadFileTaskAsync(new Uri(), );
pedram.11
سه شنبه 31 تیر 1393, 13:26 عصر
بله این کلید یادم نبود تابحال ازش استفاده نکردم، اینم برای به هنگام سازی در متد هاست که از کلید await موقع فراخوانی متد و async موقع تعریف متد استفاده میشه
dalvand
سه شنبه 20 مرداد 1394, 23:40 عصر
private async void button1_Click(object sender, EventArgs e)
{
string result = await WaitAsynchronouslyAsync();
textBox1.Text += result;
}
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(1000);
return "Finished";
}
یک نمونه ساده از طریقه استفاده اونه ولی ..مفهوم کلی کاربرد اون در فراخوانی و اجرای کارها task های غیر همزمان
تمامی دستورات در توابع async تا رسیدن به await اجرا میشوند و با رسیدن به await دستورات آن اجرا و سپس به ادامه اجرا دستورات داخل تابع برمیگردد.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.