を使用して非常に大きなファイルの SHA-512 ハッシュを計算してSystem.Security.Cryptography.SHA512Cng.ComputeHash
います。その進行状況バーを表示したいと思います。アルゴリズムを再実装せずにメソッドの完了を確認するにはどうすればよいですか?
2 に答える
2
サブクラス化できますStream
!ProgressStream
ファイルから読み取る は次のとおりです。
Public Class ProgressStream
Inherits FileStream
Public Event ProgressChanged(sender As ProgressStream, progress As Integer)
Public Sub New(fileName As String)
MyBase.New(fileName, FileMode.Open, FileAccess.Read)
End Sub
Public ReadOnly Property Progress() As Integer
Get
Return CInt(Me.Position / Me.Length * 100)
End Get
End Property
Public Overrides Function Read(array() As Byte, offset As Integer, count As Integer) As Integer
Read = MyBase.Read(array, offset, count)
RaiseEvent ProgressChanged(Me, Me.Progress)
End Function
End Class
ProgressChanged
イベントを処理するだけです。
同じ方法が他のすべてのタイプのストリームに適用されます。また、一度にすべてではなく、必要に応じてファイルを読み取る特定の長時間実行タスクにも使用できます。
于 2012-08-04T01:06:19.107 に答える