Я не уверен, работает ли этот код в форме Windows или на веб-странице, что может повлиять на то, как вы на самом деле будете показывать прогресс.Но в любом случае, вы сначала хотели бы, чтобы этот метод сообщал о прогрессе в том, насколько он далеко.
Для этого лучше всего использовать события.Вот что вам нужно добавить к этому классу и функции:
Сначала класс, содержащий процент:
Public Class ProgressEventArgs
Inherits System.EventArgs
Public Sub New(ByVal pPercentage As Decimal)
_Percentage = pPercentage
End Sub
Private _Percentage As Decimal
Public ReadOnly Property Percentage() As Decimal
Get
Return _Percentage
End Get
End Property
End Class
Затем вы захотите добавить событие в класс, которыйUpLoadFile принадлежит:
Public Event Progress(ByVal sender As Object, ByRef e As ProgressEventArgs)
Наконец, в UpLoadFile вы захотите вызвать это событие:
....
writer.Write(fileContents, 0, blockread)
RaiseEvent Progress(Me, new ProgressEventArgs(100 * block / blocks))
Next
....
Откуда бы вы ни вызывали это, вы можете прослушать событие:
Private Sub HandleProgress(ByVal sender As Object, ByRef e As ProgressEventArgs)
'.... Update screen
End Sub
....
AddHandler YourUploadClass.Progress AddressOf HandleProgress