ファイルの内容に基づいていくつかのファイルを移動\フォーマットする小さなwinformsアプリに取り組んでいます。ファイルの処理にかかる時間を確認するために、同じファイルのコピーを数百作成しました。10 ~ 20 個のファイルを反復処理する場合は 1 秒あたり 22000 kb を処理しますが、150 ~ 200 個のファイルを反復処理すると、1 秒あたりの kb は 11,000 に低下します。もちろん、より多くのファイルには時間がかかりますが、なぜ 1 秒あたりの kb がそれほど低下するのでしょうか? ファイルは同一なので、何が起こっているのですか?これがコードのスケルトンです....
'classA
For Each f As String In files
Dim p As New Item(f)
AddHandler p.InitCompleted, AddressOf DoWork
Task.Factory.StartNew(Sub()
p.StartInit()
End Sub).Wait()
Next f
'classA - - _scheduler declared at the class level and assigned FromCurrentSynchronizationContext
Public Sub DoWork()
'move/format files
Task.Factory.StartNew(Sub() RaiseEvent AnEvent(intVal1, intVal2), Nothing, Threading.Tasks.TaskCreationOptions.None, _scheduler).Wait()
End Sub
'classItem
Private Sub Init()
'search file contents
Task.Factory.StartNew(Sub() RaiseEvent InitCompleted(), Nothing, Threading.Tasks.TaskCreationOptions.None, _scheduler).Wait()
End Sub
'gui winform
AddHandler classa.AnEvent, AddressOf OnAnEvent
Private Sub OnAnEvent(ByVal param1 Integer, ByVal param2 As Integer)
txtBox1.Text = param1
txtBox2.Text = Param2
End Sub
任意の入力をいただければ幸いです。C# での回答は問題ありません。