19-11-12, 05:48 PM
السلام عليكم
شرح مختصر عن Thread او ما يسمى خيوط داخل العملية او التنفيذ المتوازي
/// مثال لجزاء من المخرجات
mulsi
khaled
khaled
khaled
khaled
mulsi
mulsi
mulsi
mulsi
khaled
khaled
khaled
mulsi
mulsi
mulsi
mulsi
khaled
mulsi
khaled
mulsi
mulsi
اذا يوجد اي خطاء في فهمي لها ارجو من الاخوة تصحيحة لي
شرح مختصر عن Thread او ما يسمى خيوط داخل العملية او التنفيذ المتوازي
كود :
using System.Threading; // المكتبة المسؤلة عن Thread
namespace thread
{
public partial class Form1 : Form
{
// نعرف متغيرين من نوع Thread
Thread t1;
Thread t2;
public Form1()
{
InitializeComponent();
}
private void RUN_Click(object sender, EventArgs e)
{
// نظيف زر RUN
// لكي نبداء العمل
t1 = new Thread(nameth);
// قمنا بادخل الدالة لتنفيذها في جدول العمليات
t1.Name = "khaled";
//وضعنا اسم للعملية
t1.Start();
//بداية العملية
t2 = new Thread(nameth);
//عرفنا ايضا نفس الدلة في الثريد 2
t2.Name = "mulsi";
// ادخلنا اسم الثريد الاخرى
t2.Start();
// بداية العملية الاخرى
}
// متغير عمومي من نوع سلسلة نصية لكي نخزن علية السجل
string x = "";
private void nameth()
{
Random r = new Random(Thread.CurrentThread.GetHashCode());
int i=0;
do
{
x +=Convert.ToString( Thread.CurrentThread.Name + Environment.NewLine);
// كتابة اسم Thread
// الذي يعمل الان سنلاحظ عند السجل انهوا مرة ب mulsi ومرة ب khaled وقد ياتي واحد اسرع من الاخر
// ايضا قد تلاحظ انهوا بعض الاحين سيتكرر ثلاث مرات mulsi او اكثر
// او العكس يتكرر خالد نتيجة ان وقت وصول العملية عشوائي
int count = r.Next(1000);
i++;
Thread.Sleep(count);
// الوقوف العشوائي المؤقت
}
while(i<20);
}
private void SHOWLOG_Click(object sender, EventArgs e)
{
// في هذا الزر سوف نعرض بيانات السجل عند كل ضغطه لانلاحظ تقدم عملية التنفيذ الانيتين
//textlog سنضيف اداة تكست بوكس باسم
textlog.Text = x;
}
/// مثال لجزاء من المخرجات
mulsi
khaled
khaled
khaled
khaled
mulsi
mulsi
mulsi
mulsi
khaled
khaled
khaled
mulsi
mulsi
mulsi
mulsi
khaled
mulsi
khaled
mulsi
mulsi
اذا يوجد اي خطاء في فهمي لها ارجو من الاخوة تصحيحة لي