tgoop.com/CsharpWindowsForm/194
Last Update:
بسم الله الرحمن الرحيم
اليوم سوف نشرح عن كيفية عمل تنفيذ لمهام متعددة في نفس الوقت multi Task
نبدأ الشرح بكود
مثال
لو كان معك دالتين في كلاس Form1
كود الدالتين :
public void h1()
{
for (int i = 0; i < 3; i++)
{
MessageBox.Show("h1");
}
}
public void h2()
{
for (int i = 0; i < 3; i++)
{
MessageBox.Show("h2");
}
}
الان عند استدعاء الدالتين سوف يقوم الكمبايلر بمعالجة الدالة الأولى ومن ثم يقوم بمعالجة الدالة الثانية
private void button1_Click(object sender, EventArgs e)
{
h1();
h2();
}
سوف يقوم بتكرار messageBox ثلاث مرات على التوالي للدالة الأولى بعد ذلك يقوم بنفس العملية للدالة الثانية
الان سوف نجعل الكمبايلر يعالج اكثر من عملية في وقت واحد
يعني يقوم بتنفيذ الدالتين في وقت واحد
سوف نستخدم الكلاس Thread وهو موجود في الفضاء
using System.Threading;
private void button1_Click(object sender, EventArgs e)
{
Thread t1 = new Thread(h1);
Thread t2 = new Thread(h2);
t1.Start();
t2.Start();
}
نقوم بانشاء 2 اوبجكت من الكلاس Thread ونرسل العملية التي نريد بدء عمليه معالجتها الى دالة البناء
بعد ذالك نستدعي الدالة Start لبدء العملية
الان عندما تقوم بالتنفيذ وتقوم بالضغط على الزر سوف يطبع رسالتين من الدالة الأولى ومن الدالة الثاني
وهكذا بعد ان تضغط على موافق في messageBox يتم اظهار الرساله التي بعد
بعدد دورات الدوارة
اذا انت تريد ان تمم العملية بعد مدة محددة
استخدم الدالة sleep
مثال
public void h1()
{
for (int i = 0; i < 3; i++)
{
MessageBox.Show("h1");
Thread.Sleep(3000);
}
}
الان عند التنفيذ والضغط سوف يتم اظهار الرسالة الأولى "h1" وبعد 3 ثواني سوف تظهر الرسالة الثانية وهكذا
انتهى ......................
https://www.tgoop.com/CsharpWindowsForm
BY برمجة تطبيقات الويندوز C# Programming

Share with your friend now:
tgoop.com/CsharpWindowsForm/194