PDA

View Full Version : stop و progressbar در backgroudworker



ILYA20
چهارشنبه 10 آبان 1396, 18:48 عصر
با سلام و درود خدمت دوستان

ما از یک backgroudworker استفاده میکنیم و میخواهیم از شروع تا پایان پروسه progressbar کار کنه (میزان پیشرفت کار رو نمایش بده) و همینطور مشکل در کنسل کردن backgroudworker داریم و کنسل کار نمیکنه

دستورات استفاده شده توسط ما :



Private Sub UnpackSystem_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles UnpackSystem.DoWork
For i = 0 To 100
If UnpackSystem.CancellationPending = True Then
e.Cancel = True
Exit For
Else
unpacked()
UnpackSystem.ReportProgress(i)
End If
Next
End Sub
Private Sub UnpackSystem_ProgressChanged(sender As System.Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles UnpackSystem.ProgressChanged
ProgressBar5.Value = e.ProgressPercentage
End Sub
Private Sub UnpackSystem_Completed(sender As System.Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles UnpackSystem.RunWorkerCompleted
If e.Cancelled = True Then
TextBox8.AppendText(Environment.NewLine & "Proccess Canceled")
ProgressBar5.Value = 0
ElseIf e.Error IsNot Nothing Then
TextBox8.AppendText(Environment.NewLine & "Error Progceess")
Else
TextBox8.AppendText(Environment.NewLine & "Task Complete")
End If
End Sub
Private Sub unpacked()
Dim oProcess As New Process()
Dim oStartInfo As New ProcessStartInfo("cmd.exe", "/c apktool d framework-res.apk")
oStartInfo.WindowStyle = ProcessWindowStyle.Hidden
oStartInfo.CreateNoWindow = True
oStartInfo.UseShellExecute = False
oStartInfo.RedirectStandardOutput = True
oProcess.StartInfo = oStartInfo
oProcess.Start()
Dim sOutput As String
Using oStreamReader As System.IO.StreamReader = oProcess.StandardOutput
sOutput = oStreamReader.ReadToEnd()
End Using
TextBox8.Invoke(Sub() TextBox8.AppendText(Environment.NewLine & sOutput))
End Sub
Private Sub BtnCancell_Click(sender As Object, e As EventArgs) Handles BtnCancell.Click
If UnpackSystem.WorkerSupportsCancellation = True Then
UnpackSystem.CancelAsync()
End If
End Sub
End Class


مشکل در کجای کار ماست

راهنمایی لطفا

hamidrezax1
پنج شنبه 11 آبان 1396, 22:27 عصر
به هر دوسوالتون در این سایت (https://stackoverflow.com/questions/18437290/vb-net-stopping-a-backgroundworker) جواب داد شده موفق باشید

ILYA20
شنبه 13 آبان 1396, 21:01 عصر
به هر دوسوالتون در این سایت (https://stackoverflow.com/questions/18437290/vb-net-stopping-a-backgroundworker) جواب داد شده موفق باشید
متاسفانه کمکم نکرد

به یک مثال نیاز دارم خیلی تو stack گشم و خوندم ولی نتونستم انجام بدم

من میخواهم برای این دستور از background worker استفاده کنم و پروگرس بار و استوپ کار کنه



Dim oProcess As New Process()
Dim oStartInfo As New ProcessStartInfo("cmd.exe", "/c apktool d framework-res.apk")
oStartInfo.WindowStyle = ProcessWindowStyle.Hidden
oStartInfo.CreateNoWindow = True
oStartInfo.UseShellExecute = False
oStartInfo.RedirectStandardOutput = True
oProcess.StartInfo = oStartInfo
oProcess.Start()
Dim sOutput As String
Using oStreamReader As System.IO.StreamReader = oProcess.StandardOutput
sOutput = oStreamReader.ReadToEnd()
End Using
TextBox8.Invoke(Sub() TextBox8.AppendText(Environment.NewLine & sOutput))

ILYA20
یک شنبه 14 آبان 1396, 20:47 عصر
با عرض معذرت



دوستان عزیز راهنمایی لطفا

venus123
دوشنبه 15 آبان 1396, 20:36 عصر
سلام خدمت دوستان و اساتید.
بنده هم مشکلی مشابه همین رو دارم لطفا اگه کسی میتونه راهنمایی کنه
با تشکر:قلب:

hamidrezax1
سه شنبه 16 آبان 1396, 06:27 صبح
سلام وقت بخیر دوستان
دیدم جواب دادن به این سوال خالی از لطف نیست برای همین ساده ترین برنامه رو براتون قرار دادم تا با الهام گرفتن از اون بتوانید برنامه هاتون رو توسعه بدین.البته ناگفته نماند روش های من شاید اصولی نباشن اما میتونند به نوبه خودشون در بعضی موارد کار راه انداز باشن.قطعا و یقینا دوستان و اساتید گروه روش های علمی و بهتری برای ارائه دارند.
موفق باشید
دانلـــــــــــــــــــــ ــــــــــــــــــــود (http://up.persianscript.ir/uploads2/d0c5-WindowsApplication75.rar)