SharpZipLib을 사용하여 파일을 압축하고 있습니다. 라이브러리는 별도의 DLL에서 플러그인 인터페이스로 래핑됩니다. 나는 플러그인 dll ByRef
매개 변수를 전달하여 압축 진행 상황을 추적합니다.'ByRef'매개 변수 '<parametername>'을 람다 식에서 사용할 수 없습니다.
SharpZipLib은 압축하는 동안 압축을 시작할 때 전달 된 대리자 sub를 주기적으로 호출합니다. 대리자가 호출 될 때 ByRef
매개 변수를 업데이트하는 방법을 알 수 없습니다. 람 바 표현식의 본문에 ByRef
변수를 할당하려고 시도하면 'ByRef' parameter '<parametername>' cannot be used in a lambda expression
오류가 발생합니다.
Using InputFile As New IO.FileStream(SourceFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
Using OutputFile As New IO.FileStream(DestFile, IO.FileMode.Create)
Using GZipStream As New GZipOutputStream(OutputFile)
Dim Buffer(524228) As Byte
Dim Handler As New ProgressHandler(Sub(Sender As Object, EventArgs As ProgressEventArgs) Progress += EventArgs.Processed)
StreamUtils.Copy(InputFile, GZipStream, Buffer, Handler, New TimeSpan(10000000), Nothing, "")
End Using
End Using
End Using
감사 :
여기 내 코드입니다! 당신은 익명 함수를 사용하거나하지 않을 경우
조금 어리석은 간단한 해결책 :-). 엄지 척! –