تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] فيما يخص دالة Thread.Sleep(1000)
#1
السلام عليكم

اريد تصحيح الخطا في هذا الكود

الكود يظهر لي رقما كل نصف ثانية اي 500 ميلي ثانية

استعنت  بدالة   Thread.Sleep

بهذا الكود 


PHP كود :
For As Integer 1 To 5
            ListBox1
.Items.Add(i)
 
           Thread.Sleep(500)
 
       Next 

لكن يظهر كل الارقام  دفعة واحدة

هل فيه لقطة ما ؟

----------------------------------
لا اريد اللجوء الى التايمر
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: حريف برمجة
#2
و عليكم السلام و رحمة الله و بركاته

كود :
      For i As Integer = 1 To 5
           ListBox1.Items.Add(i)
           Thread.Sleep(500)
           My.Application.DoEvents()
       Next
الرد }}}
#3
او الافضل : استخدم         

كود :
    Await Task.Delay(500)

حتى لاتحبس المستخدم اثناء الانتظار ، ولكن اضف Async قبل Sub في تعريف الحدث :

كود :
   Private Async Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       For i As Integer = 1 To 5
           ListBox1.Items.Add(i)
           Await Task.Delay(500)
       Next
   End Sub

هكذا ننتظر دون استخدام تايمر ودون تعطيل باقي البرنامج
الرد }}}
تم الشكر بواسطة: حريف برمجة , WaeLx , عبد الهادي بهاب , kiki
#4
(11-09-20, 06:47 AM)Mohamad Anan كتب : و عليكم السلام و رحمة الله و بركاته

كود :
      For i As Integer = 1 To 5
           ListBox1.Items.Add(i)
           Thread.Sleep(500)
           My.Application.DoEvents()
       Next

تحياتي استاذ محمد
جزاك الله خيرا

(11-09-20, 09:00 AM)Anas Mahmoud كتب : او الافضل : استخدم         

كود :
    Await Task.Delay(500)

حتى لاتحبس المستخدم اثناء الانتظار ، ولكن اضف Async قبل Sub في تعريف الحدث :

كود :
   Private Async Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       For i As Integer = 1 To 5
           ListBox1.Items.Add(i)
           Await Task.Delay(500)
       Next
   End Sub

هكذا ننتظر دون استخدام تايمر ودون تعطيل باقي البرنامج


ربي حفظكم استاذ على الاستمرارية في خدمة الاخرين

ان شاء الله صدقة جارية و علم ينتقع له

انا اعمل على  vb2010 express

 و ظهرت لي انا فيه خلل ما



يعني لم يقبل Async
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: حريف برمجة , Mohamad Anan , WaeLx
#5
ال Async من اول 2015 اظن

طيب جرب ال threading 

كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Dim Th As New Thread(New ThreadStart(AddressOf Threadsub))
       Th.Start()

 
 End Sub
   Sub Threadsub()
       For i As Integer = 1 To 5
           Invoke(Sub() ListBox1.Items.Add(i))
           Thread.Sleep(500)
       Next
   End Sub
الرد }}}
تم الشكر بواسطة: حريف برمجة , WaeLx , WaeLx , عبد الهادي بهاب
#6
بارك الله فيكم
استاذ
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: حريف برمجة , WaeLx , Anas Mahmoud , Anas Mahmoud



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


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