我有一個VB.NET WinForms應用程序使用順序Parallel.For語句。.NET錯誤 - Threading.Timer影響Parallel.For性能
在添加Threading.Timer之後,Parallel.For循環緩慢進行爬網,內核時間量跳至近80%。
這兩者在我的代碼中沒有關係(即,兩者都不是由另一方運行),也不共享任何代碼或數據。
刪除計時器可以解決問題。
有沒有其他人經歷過這種行爲?解決此問題的最佳方法是什麼(如果需要,寧願不創建WinForms計時器)?
這是由定時器執行的代碼:
Public Sub Tick()
IO.File.WriteAllText("c:\test.txt", DateTime.Now.ToString())
End Sub
這是計時器創建語句:
tmrFile = New Threading.Timer(AddressOf Tick, Nothing, New TimeSpan(0, 0, 0), New TimeSpan(0, 1, 0))
有趣..你可以張貼一些簡單的沒有經過充分測試的代碼重現問題的代碼? – 2010-11-03 20:35:10
在這方面很簡單,可能不是很簡單。平行的fors正在做大量的記憶複製和圖像重採樣。線程計時器只是使用當前日期時間更新文件。如果我有一些時間,我會看看我是否不能重現行爲。 – ColorEyes 2010-11-03 20:49:43
@ColorEyes,如果你刪除了Parallel.For循環,只是計時器東西讓你的機器忙? – 2010-11-03 21:31:13