PDA

View Full Version : سوال: چرا Backgroundworker درست کار نمیکنه؟



محمد زارع
پنج شنبه 17 بهمن 1387, 10:16 صبح
سلام

من برای بخشی از برنامه مجبورم از یه بک گروند ورکر استفاده کنم؛ توی فروم جستجو کردم و یه چیزایی دستگیرم شد. برای امتحان توی فرم دو تا Button و یک بک گروند ورکر گذاشتم و کد زیر رو هم نوشتم. موقع اجرا اصلاً کد BackgroundWorker1_DoWork اجرا نمیشه! مشکل کجاست؟

ممنون
زارع




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If BackgroundWorker1.IsBusy = False Then
BackgroundWorker1.RunWorkerAsync()
End If

End Sub

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
i = 0
If i <= 10000 Then
i += 1
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If BackgroundWorker1.IsBusy = True Then
Beep()
BackgroundWorker1.CancelAsync()
End If
End Sub

mostafaaa
جمعه 18 بهمن 1387, 18:19 عصر
سلام دوست من
شما از كجا فهميدي كه اجرا نميشه!!

mostafaaa
جمعه 18 بهمن 1387, 18:23 عصر
در ضمن اين كد ساده رو امتحان كن تا يه چيزايي در مورد استفاده از BG دستت بياد :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ProgressBar1.Maximum = 1000
Me.BackgroundWorker1.WorkerReportsProgress = True
Me.BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For i As Integer = 0 To 1000
Me.BackgroundWorker1.ReportProgress(i)
Next
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub
يا علي

محمد زارع
جمعه 18 بهمن 1387, 20:40 عصر
دوست عزیزم سلام

از اینکه زحمت کشیدید بسیار ممنونم، در مورد سئوالتون من توی کدم یه دستور Beep گذاشتم تا به محض اجرای کد Dowork متوجه بشم، اما دریغ از یه نوای دلنشین!:متفکر:
بابت اون کد هم خیلی ممنونم. حتماً استفاده می کنم.:تشویق:

با تشکر
زارع

mostafaaa
جمعه 18 بهمن 1387, 22:05 عصر
دوباره سلام دوست من
خوب معلومه، نبايدم صداش رو بشنوي براي اينكه كدت رو توي شرطي گذاشتي كه درست نيست(قبل از اينكه Button مربوطه رو فشار بدي شرطت False ميشه!!)