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

نسخة كاملة : فيما يخص دالة Thread.Sleep(1000)
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

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

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

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

بهذا الكود 


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

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

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

----------------------------------
لا اريد اللجوء الى التايمر
و عليكم السلام و رحمة الله و بركاته

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

كود :
    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

هكذا ننتظر دون استخدام تايمر ودون تعطيل باقي البرنامج
(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
ال 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
بارك الله فيكم
استاذ