منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : استخدام عدد 200 threads او 200 تايمر بشكل مختصر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم يا شباب 

عندي مثال وليكن مشروع checker او غيره 

واريد استخدام عدد كبيير جدا من التايمرز وليكن مثلا 200 timers

 هل يمكن ذالك عن طريق كود مختصر 
----
واذا كان threads سيعوض مكان التايمر بكفاءة كيف يمكنني استخدام عدد 200 thread 

داخل مشروع او برنامج


بحثت كثير لا يوجد شرح واضح في المحتوى العربي 

مثال لاستخدام عدد كبير من threads
كيف اضيف هذه الخاصية الى برنامجي





المطلوب كود لاستخدام عدد كبير من التايمرز بشكل مختصر بدون اضافة 200 تايمرز الى المشروع 

هذا الكود المستخدم داخل التايمر 
اريد تنفيذ هذا الكود بواسطة 200 تايمر او ثريد بشكل متزامن  بدون مشاكل 

ممتن جدا لكم اخوتي ♥♥


كود :
 ProgressBar1.Increment(1)
       'Try
       If (ProgressBar1.Value <> &H2710) Then

           Dim box2 As ListBox = Me.ListBox1

           box2.SelectedIndex += 1

           If ListBox1.SelectedItem.ToString.Contains(TextBox1.Text.ToLower) Then

               ListBox2.Items.Add(ListBox1.SelectedItem.ToString)

               ProgressBar1.Value = 0

           End If

       End If
       'Catch exception1 As Exception
       '    ProjectData.SetProjectError(exception1)
       '    Dim exception As Exception = exception1
       '    ProjectData.ClearProjectError()
       'End Try
       Label5.Text = ListBox1.SelectedIndex.ToString









[صورة مرفقة: p_17837tqzs1.png]
السؤال الاهم لماذا تريد ان تعمل في كل هذا العدد من ال Threads ؟ هذا امر خطير جدا لانه اذا امتلى ال Thread pool فسيتوقف كل شيء تماما حتى يحرر احد ال Threads
(18-11-20, 09:01 PM)Anas Mahmoud كتب : [ -> ]السؤال الاهم لماذا تريد ان تعمل في كل هذا العدد من ال Threads ؟ هذا امر خطير جدا لانه اذا امتلى ال Thread pool فسيتوقف كل شيء تماما حتى يحرر احد ال Threads

اذا كان لك تعامل برامج التخمين او البرامج المشابهه هذه البرامج كمثال تستقبل كمية كبيرة من المدخلات مثلا لدينا لستة ايميلات مكونة من مليون ايميل

كيف يمكن التخمين على كل هذا العدد في وقت قصير ..مصممين هذه البرامج يستخدمون الـ threads للقيام بالمهمة وهم يستخدمون اعداد قد تصل الى 500 او 1000 في بعض الأحيان
بدون التأثير على موارد الجهاز وتقوم بعملها بسرعة كبيرة جدا
وااتوقع انه استخدام الثريد غير متزامن
اتمنى لو احد الاخوة عنده حل مبدأي

انا اريد اضيف هذه الخاصية الى برنامجي بحيث يكون اسرع في الاستخدام
upupupupupupupupupupupupupupupupupupupupupupupupupup
(18-11-20, 03:53 PM)INFLaaTy.cR كتب : [ -> ]السلام عليكم يا شباب 

عندي مثال وليكن مشروع checker او غيره 

واريد استخدام عدد كبيير جدا من التايمرز وليكن مثلا 200 timers

 هل يمكن ذالك عن طريق كود مختصر 
----
واذا كان threads سيعوض مكان التايمر بكفاءة كيف يمكنني استخدام عدد 200 thread 

داخل مشروع او برنامج


بحثت كثير لا يوجد شرح واضح في المحتوى العربي 

مثال لاستخدام عدد كبير من threads
كيف اضيف هذه الخاصية الى برنامجي





المطلوب كود لاستخدام عدد كبير من التايمرز بشكل مختصر بدون اضافة 200 تايمرز الى المشروع 

هذا الكود المستخدم داخل التايمر 
اريد تنفيذ هذا الكود بواسطة 200 تايمر او ثريد بشكل متزامن  بدون مشاكل 

ممتن جدا لكم اخوتي ♥♥


كود :
 ProgressBar1.Increment(1)
       'Try
       If (ProgressBar1.Value <> &H2710) Then

           Dim box2 As ListBox = Me.ListBox1

           box2.SelectedIndex += 1

           If ListBox1.SelectedItem.ToString.Contains(TextBox1.Text.ToLower) Then

               ListBox2.Items.Add(ListBox1.SelectedItem.ToString)

               ProgressBar1.Value = 0

           End If

       End If
       'Catch exception1 As Exception
       '    ProjectData.SetProjectError(exception1)
       '    Dim exception As Exception = exception1
       '    ProjectData.ClearProjectError()
       'End Try
       Label5.Text = ListBox1.SelectedIndex.ToString









[صورة مرفقة: p_17837tqzs1.png]

و عليكم السلام
تفضل
كود :
   Dim int_1 As Integer
   Dim thread_1 As Thread()

كود :
       int_1 = Convert.ToInt32(TextBox1.Text)
       thread_1 = New Thread(int_1 - 1) {}
       For j As Integer = 0 To int_1 - 1
           thread_1(j) = New Thread(New ThreadStart(AddressOf Me.trakktour))
           thread_1(j).IsBackground = True
           thread_1(j).Start()
       Next

textbox1 ضع فيها عدد الثريد مثلا 200
trakktour اسم sub 
بتوفيق ان شاء الله