[COLOR="#FF0000"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
صدق الله العلي العظيم
[/COLOR]
السلام عليكم ايها الاحبة اعضاء وزوار المنتدى الكرام ان شاءالله تكونوا في تمام الصحة والعافية
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
صدق الله العلي العظيم
[/COLOR]
السلام عليكم ايها الاحبة اعضاء وزوار المنتدى الكرام ان شاءالله تكونوا في تمام الصحة والعافية
[COLOR="#800080"]الكثير منا ربما يعرفون عن البرمجة الغير المتزامنة Asynchronous operations والتعامل معها لما لها من فوائد كثيرة منها منع جمود الmain thread اثناء اداء عملية ما قد تستغرق وقتا طويلا مثلا قراءة محتويات ملف كبير الحجم والتي سيؤدي الى جمود البرنامج لحين انتهاء عملية القراءة ,وهنالك الكثير من الدوال التي تتعامل مع البرمجة الغير المتزامنة وقد اضيفت الى هذه الدوال في الاصدار الجديد للفيجوال ستوديو VS2012 كلمتان مفتاحيتان لغرض سهولة التعامل مع البرمجة الغير المتزامنة وهما: await and async والتي نحن بصدد تعريف هاتان الكلمتان لاحقا مع مثال يبين كيفية استخدام هاتان الكلمتان.
الكلمة المفتاحية async : هذه الكلمة تستخدم للدلالة على أن الدالة او الاجراء تحتوي على عملية غير متزامنة ,أو وظيفتها اجراء عملية غير متزامنة.
الكلمة المفتاحية await : وهذه الكلمة تطبق على ناتج الدالة الغير المتزامنة async method .[/COLOR]
مثال من msdn لنسخ محتويات ملف الى ملف آخر:
PHP كود :
private async void Button_Click(object sender, RoutedEventArgs e)
{
string UserDirectory = @"c:\Users\exampleuser\";
using (StreamReader SourceReader = File.OpenText(UserDirectory + "BigFile.txt"))
{
using (StreamWriter DestinationWriter = File.CreateText(UserDirectory + "CopiedFile.txt"))
{
await CopyFilesAsync(SourceReader, DestinationWriter);
}
}
}
public async Task CopyFilesAsync(StreamReader Source, StreamWriter Destination)
{
char[] buffer = new char[0x1000];
int numRead;
while ((numRead = await Source.ReadAsync(buffer, 0, buffer.Length)) != 0)
{
await Destination.WriteAsync(buffer, 0, numRead);
}
}
[COLOR="#4B0082"]كما تلاحظون الكلمة async موجودة امام تعريف الاجراءات وذلك لان هذه الاجراءات فيها عمليات غير متزامنة ,والكلمة await توضع قبل دالة العملة الغير المتزامنة.
ملاحظة: هاتان الكلمتان تكتبان بلغة الVB.Net هكذا: Async ,Await .
ارجوا ان اكون قد وفقت لنقل المعلومة لكم ان شاءالله والتوفيق من الله تعالى[/COLOR]