تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة بسيطة في برنامج بسيط يعتمد على( Multi-Threading)
#1
ألسلام عليكم ورحمة الله وبركاته ..

أخواني كيف حالكم ..

قررت اتعلم اسلوب Multi Threading ولكن في الحقيقة الامر اصعب من تعلم VB.net بحيث لايوجد لها مواد تعليمية واشرح مفصل لها ولا حلول لمشاكلها .

المهم برنامج برنامج تعليمي لاكتسب مهارات في هذا الاسلوب .

اولا برنامج يحتوي على Form1 و Module1

الــ Form1 يحتوي على التالي :  TextBox1.Text و Button1
والـModule1 يحتوي على Sub  بإسم Main
وبعد شرح أجزاء البرنامج  هذه الاكواد كاملة


Form1

كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim Thread As New Threading.Thread(Sub() main())
       Thread.IsBackground = True
       Thread.Start()

   End Sub

و تانياً ألـ Module1

كود :
Module Dada
   Sub main()
       
       Dim Text As String = "Hello Word"
       Dim myDelegate As MethodInvoker
       myDelegate = New MethodInvoker(Sub() Form1.TextBox1.Text = Text)
       Form1.TextBox1.Invoke(myDelegate)


   End Sub
End Module


مشكلتي وهى كيف تغير النص الموجود داخل Textbox1 الى موجود في Form1 عن طريق Threading وطبعا اريد الكود الذي يقوم بتغير النص
او التحكم في Form1 موجود داخل Module1 وليس على نفس الـForm1 (علـــــماً بأن الكـــــود الســــــابق بــه خطـــا )
وهذه صورة الخطا الذي يظهر لي :



وجزاكم الله الف خيراً تتمنوه وتلقوه بإذنه تعالى .
الرد }}}
تم الشكر بواسطة:
#2
PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click

    Dim Thread 
As New Threading.Thread(Sub() main(Me.TextBox1"Hello Word"))
 
   Thread.IsBackground True
    Thread
.Start()

End Sub 

PHP كود :
Module Dada
    Sub main
(tb As TextBoxtxt As String)

 
       tb.Invoke(Sub() tb.Text txt)

 
   End Sub
End Module 
الرد }}}
تم الشكر بواسطة: أبو نقطة
#3
(12-05-17, 04:35 AM)mansoor كتب :
PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click

    Dim Thread 
As New Threading.Thread(Sub() main(Me.TextBox1"Hello Word"))
 
   Thread.IsBackground True
    Thread
.Start()

End Sub 

PHP كود :
Module Dada
    Sub main
(tb As TextBoxtxt As String)

 
       tb.Invoke(Sub() tb.Text txt)

 
   End Sub
End Module 


اولا جزاك الله الف خيراً اخي وبارك الله فيك على التوضيح الحسن .. ولكن ماذا لو اردت الكود بهذا الشكل .. كيف اقوم بالتالي مثل هذه الصورة




بحيث بعد مااغيرها الى Ahmed كيف اغيرها في Sub اخر الى "asda" وشكراً
الرد }}}
تم الشكر بواسطة:
#4
PHP كود :
Module Dada
    Sub main
(tb As TextBox)

        
tb.Invoke(Sub() tb.Text "Ahmad")

        
gaga(tb)

    
End Sub

    Sub gaga
(tb As TextBox)

        
tb.Invoke(Sub() tb.Text "asda")

    
End Sub

End Module 

ولكن لن ترى Ahmad لأنه سيتغير بسرعة
الرد }}}
تم الشكر بواسطة: أبو نقطة , أبو نقطة
#5
(12-05-17, 06:08 AM)mansoor كتب :
PHP كود :
Module Dada
    Sub main
(tb As TextBox)

 
       tb.Invoke(Sub() tb.Text "Ahmad")

 
       gaga(tb)

 
   End Sub

    Sub gaga
(tb As TextBox)

 
       tb.Invoke(Sub() tb.Text "asda")

 
   End Sub

End Module 

ولكن لن ترى Ahmad لأنه سيتغير بسرعة


في الحقيقة هذا جميل .. ولكن الامر ازداد تعقد لتطبيقه على برنامجي الحقيقي .
انا قمت برمجة برنامج بفكرة ذهبية ورائعة .. وهو يعمل بصورة صحيحة ويؤدي عمله . ولكن المشكلة في موضوع البطئ وتجمد البرنامج ..
كنت متردد في رفع السورس كاملا لحل المشكلة قبل الانتهاء منه . ولكن سوف ارفعه .. لعل قد تساعدني  في عمل threading عليه ويصبح اسرع قليلا مما هو عليه الان ..

اتمنى منك مساعدتي به
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم
أخي mansoor
في الحقيقة كلمة شكراً لاتكفيك لقد كنت سنداً لي في وقت الحاجة .. رغم اني تجولت في النت وبحتث على حل للمشكلة لم اجد شي يفيدني
وفي الحقيقة لم ينجح معي ولاكود او مقالة فكانت كلها غير ناجحة ...
بالرغم من ذلك نجح معي الامر معك فـ اكوادك كانت مفيدة لي وتمكنت من اصلاح البرنامج وايقاف التجمد للبرنامج ...
كنت اتمنى ان ارسل لك رسالة خاصة تعبيراً على شكري لك وامتناني اليك ولكن لم اتمكن من ذلك فـ الخاصية غير مفعلة معك ..
كل مااقوله لك . هو جزاك الله الف خيراً تتمناه وتلقاه بإذنه تعالى .. واطلب الله ان ينير قلبك ودربلك وصلاتك ويجعلك روضاً من رياض الجنة..
انت بالفعل تستحق دعوة منبعها القلب .. لقد ساعدتني اخي شكرا جزيلاً لك ..
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى Radiobutton عند وضع صورة فيه أبو جودة 3 81 15-04-24, 04:31 AM
آخر رد: Taha Okla
  [سؤال] لدي مشكلة عند قراءة ملف نصي من خلال أداة RichBox , حيث تظهر لي علامات استفهام Mostchar 2 149 07-04-24, 02:51 PM
آخر رد: تركي الحلواني
  مشكلة في التايمر assuhimi 3 126 23-03-24, 04:51 PM
آخر رد: Taha Okla
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 653 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  [سؤال] مشكلة اتصال مفتوح dell 2 171 12-03-24, 09:46 PM
آخر رد: dell
  مشكلة عند نقل البرنامج من فيجوال 2013 الى فيجوال 2017 strongriseman 5 156 12-03-24, 10:37 AM
آخر رد: strongriseman
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 162 06-03-24, 07:49 PM
آخر رد: احمد خطاب
Photo [VB.NET] مشكلة في شكل الفورم abuyazan 5 305 27-02-24, 09:38 PM
آخر رد: aljzazy
  [VB.NET] مشكلة فى رفع الفاتورة asdfar1977 5 176 25-02-24, 02:04 PM
آخر رد: asdfar1977
  [VB.NET] حل مشكلة الاتصال بقواعد البيانات access loay775 2 170 25-02-24, 06:29 AM
آخر رد: loay775

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم