سلام عليكم
واجهتني مشكلة تهنيج البرنامج
عند تشغيل تايمر لتنفيذ الكود
الرجاء مساعدتني عند تشغيل تايمر
مايهنج البرنامج
بالاضافة الي
ProgressBar1
لا اريد ان يمشي بسرعة ولكن ببطء
وبعد الانتهاء يتم توقف timer
تفضلوا الكود الموجود في timer
كود :
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Me.ProgressBar1.Value = 0
Dim strArray As String() = Me.id.Text.Split(New Char() {"#"c})
Me.ProgressBar1.Maximum = strArray.Length
Dim i As Integer = 0
Do While (i <= strArray.GetUpperBound(0))
Me.emad1.Send(String.Concat(New String() {"<iq xmlns='jabber:client' to='", Me.room.Text, "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='", strArray(i), "@nimbuzz.com' /></query></iq>"}))
Me.ProgressBar1.Value += 1
i += 1
Loop
End Sub
السلام عليكم
جرب استخدام الأداة BackgroundWorker بإضافتها للفورم وهذا الكود
كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
Button1.Enabled = False
End Sub
كود :
Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim strArray As String() = Me.id.Text.Split(New Char() {"#"c})
Dim i As Integer
For i = 0 To strArray.Count - 1
Me.emad1.Send(String.Concat(New String() {"<iq xmlns='jabber:client' to='", Me.room.Text, "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='", strArray(i), "@nimbuzz.com' /></query></iq>"}))
Threading.Thread.Sleep(1000)
Me.ProgressBar1.Invoke(Sub()
Me.ProgressBar1.Value = ((i + 1) / strArray.Count) * 100
End Sub)
Next
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Button1.Enabled = True
End Sub
وتستطيع الانتظار بتغيير القيمة في السطر التالي (1000=ثانية واحدة)
كود :
Threading.Thread.Sleep(1000)
مساعدتي هي صدقة لوجه الله تعالى
اخي يسلموا ايدك ولكن طلب صغير اخر اريد تطبيق ماذكرتة في الكود اعلا ع هذا الكود
كود :
Jids = txtids.Text.Split("#")
For i = 0 To Jids.Length - 1
For Each item As String In ListBox1.Items
emad1(i).Send("<presence to='" & item & "@nimbuzz.com' type='subscribe'/>")
Next
Next
الكود اعلا هوا كتالي
كود :
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim strArray As String() = Me.id.Text.Split(New Char() {"#"c})
Dim i As Integer
For i = 0 To strArray.Count - 1
Me.emad1.Send(String.Concat(New String() {"<iq xmlns='jabber:client' to='", Me.room.Text, "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='", strArray(i), "@nimbuzz.com' /></query></iq>"}))
Threading.Thread.Sleep(1000)
Me.GenesisProgressBar1.Invoke(Sub()
Me.GenesisProgressBar1.Value = ((i + 1) / strArray.Count) * 100
End Sub)
Next
End Sub
الف شكر الك انت اروع شخص عرفته بحياتي وربي بدعيلك بكل صلاتي