hocam bi tane delagete örneği yaptım. backgroundworker kullandım. sen thread kullanmışsan çalıştırdığın fonksiyona (target) background worker ın do eventindeki kodu yapıştır
bu sayede progressbar a sıkıntısız değer atayabilirsin
Public Class Form1
Private Delegate Sub MyDelegate()
Private Sub SetValue()
ProgressBar1.Value = 50
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim del As MyDelegate
del = New MyDelegate(AddressOf SetValue)
ProgressBar1.Invoke(del)
End Sub
End Class
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:00:38 -->-> Daha önceki mesaj 17:56:43 --
bu da parametreli hali
Public Class Form1
Private Delegate Sub MyDelegate(val As Double)
Private Sub SetValue(val As Double)
ProgressBar1.Value = val
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim del As MyDelegate
del = New MyDelegate(AddressOf SetValue)
ProgressBar1.Invoke(del, 20)
End Sub
End Class
üstteki kodunda kullandığın
ProgressBar1.Value = e.ProgressPercentage
yerine
Dim del As MyDelegate
del = New MyDelegate(AddressOf SetValue)
ProgressBar1.Invoke(del, e.ProgressPercentage)
yaparsan olur..
sıkıntı varsa özelden teamviewer id-pass at bakalım