bufferSize = (1024 * 256) asyncWriter = New clsAsyncWriter(comm.destPath, AddressOf asyncWriterCallback, allUnbuffered, True, bufferSize) asyncWriter.reader = New FileStream(comm.sourcePath, FileMode.Open, FileAccess.Read, FileShare.None) asyncWriter.BeginWrite(asyncWriter.readBuffer, asyncWriter.bytesRead)
Private Sub asyncWriterCallback(ByRef instance as clsAsyncWriter) SyncLock copyFilesSyncObject bytesCopied += instance.bytesWrtten End SyncLock instance.readWait.WaitOne() If instance.bytesRead = 0 Then instance.Close() Else ' We're using the reader, so the buffers are full... instance.BeginWrite(instance.readBuffer, instance.bytesRead) End If End Sub
filesList.AddRange(Directory.GetFiles(theFolder))