的“沉重”的方法我必须做到以下几点:异步执行的GUI
Public Sub OnMouseMove
If mouseDownButNotYetMoved Then
myObjectsStateArchive.SaveObjectsState(myCurrentObjectsState.Clone())
End If
MoveObjectsWithMouse()
End Sub
的问题是,SaveObjectsState
方法很“重”。因此,当用户移动鼠标时,它会相应地移动对象,但对象被“延迟”,因为它等待SaveObjectsState
完成...
我想可能异步执行保存。 ..我的意思是,所有的对象都在当前线程,myObjectsStateArchive和myCurrentObjectState ...只是克隆和保存操作“平行”
什么是最好的方法,使用ThreadPool
或类似的东西?
Public Sub OnMouseMove
If mouseDownButNotYetMoved Then
System.Threading.ThreadPool.QueueUserWorkItem(_
New Threading.WaitCallback(_
Sub(o)
myObjectsStateArchive.SaveObjectsState(myCurrentObjectsState.Clone())
End Sub))
End If
MoveObjectsWithMouse()
End Sub
我不需要任何进度条。我只是想让沉重的“保存”在图形对象移动时执行“并列”,并且不会延迟第一次移动......我的意思是,所有对象都在当前线程中,myObjectsStateArchive和myCurrentObjectState ...只是克隆和保存操作是“平行” – serhio