![]() |
|
هل بشرح بسيط عن الـ MultiThread في c# - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176) +--- الموضوع : هل بشرح بسيط عن الـ MultiThread في c# (/showthread.php?tid=48226) |
هل بشرح بسيط عن الـ MultiThread في c# - justforit - 13-04-24 السلام عليكم ورحمة الله وبر كاته
هل بشرح بسيط عن الـ MultiThread في c#
بسي شارب خاص لاني اعرف في فيجوال بيسك دوت نت
Lable1.invoke(sub() Label1.text="111")
لكن كيف بالسي شارب لم اجد شرح حولها الا بالكونسول
ونص الخطأ او كل تفاصيله:
PHP كود : System.ArgumentOutOfRangeExceptionالكود المسبب هو: PHP كود : lblrowscount.Invoke((MethodInvoker)delegate { lblrowscount.Text = "عدد الصفوف المستخدمة: " + xlrange.Rows.Count.ToString(); }); PHP كود : btndelAll.Invoke((MethodInvoker)delegate { btndelAll.Enabled = true; }); RE: هل بشرح بسيط عن الـ MultiThread في c# - Taha Okla - 13-04-24 وعليكم السلام ورحمة الله وبركاته نحتاج أن نعمل لتصريح الاجراء (delegate) كاستينج (أي تحويل نوع) لـ (MethodInvoker) كي يعمل أي تكتب : PHP كود : Label1.Invoke ((MethodInvoker) delegate وأظن أنك تعرف أنه بالعادة يكتب ضمن حلقة تكرارية أو دورانية في حدث الـ (DoWork) للكائن (backgroundWorker). مثلا الكود : PHP كود : private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)ومن أجل عدم التعارض مع أي نداء سابق ولا زال فعال ننده عليه بالكود : PHP كود : if (backgroundWorker1.IsBusy != true) // إذا كان حدث الباك جراوند غير مشغول حالياًفي الكود السابق يبدأ العداد بالعد حتى الغاية المرجوة منه وأثناء العد فيك أن تطلب تنفيذ أي أمر آخر بالضغط على أي زر آخر أو تطلب مزامنة حدث آخر بعملية أخرى .. فقط هذا كل شيء. RE: هل بشرح بسيط عن الـ MultiThread في c# - justforit - 13-04-24 انا استخدمت void عادي اول واحد وهو الرئيسي استدعيته بالكود التالي: PHP كود : Thread th = new Thread(del);و في كلا الاجرائين : واحد يسند قيمة لـ Label و الاخر يفعل زر الامر. هل لابد من استخدام الـBGW RE: هل بشرح بسيط عن الـ MultiThread في c# - Taha Okla - 13-04-24 في البرامج العادية لا يلاحظ الفرق، ولا يختلف الأمر كثيراً .. ولكن بالعادة مع الواجهات يستخدم الـ backgroundWorker ومع الـ العمليات الغير مرئية يستخدم الـ Thread ينصح بـ backgroundWorker للمبرمجين العاديين والـ Thread للمحترفين .. على أن الـ Thread أكثر دقة في معالجة الخطوط ولكن عن تجربة وجدت أنه يوجد تداخل غير منظم في حال تم طلب تنفيذ عمليتين معاً .. فهل الكلام عن الدقة والسرعة هو كلام انشائي أم أنه حقيقي؟؟ (لا أعرف) لأني لم أجرب ولم أختبر ذلك بشكل عملي على مشاريع مناسبة لكل من العمليتين.. |