| ■No83327 (金尾 さん) に返信
> 方法1
> Dim bs00(CInt(file_size - 1)) As Byte
>
> For i As Integer = 1 To filenum
> Dim fs As New FileStream(StrPath(i), FileMode.Open, FileAccess.Read)
> fs.Read(bs00, 0, file_size)
> fs.Close()
> Next i
>
> 方法2
> Parallel.For(1, filenum, Sub(i)
> Dim bs0(CInt(file_size - 1)) As Byte
> Dim fs As New FileStream(StrPath(i), FileMode.Open, FileAccess.Read)
>
> SyncLock fs
> fs.Read(bs0, 0, file_size)
> End SyncLock
>
> fs.Close()
> End Sub)
これらは同じではありませんよね
方法2はロックオブジェクトを共有していないので
排他がされていませんよ、複数のファイルが並行で読み取られてます
なので
・SSDは並行で読み取ったら速くなる
・HDDは並行で読み取ったら遅くなる
ということだと思います |