Мне нужно сделать следующее:
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