我正在开发一个小型 winforms 应用程序,根据文件的内容移动\格式化一些文件。我制作了同一个文件的几百个副本,以查看处理这些文件需要多长时间。如果我只迭代 10 到 20 个文件,它每秒处理 22000 kb,但是当我迭代 150 到 200 个文件时,每秒 kb 下降到 11,000。当然更多的文件需要更长的时间,但为什么每秒 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# 中的答案很好。