Movefileto y progressbar

Hola a todos y feliz ao nuevo,

Mi pregunta es la siguiente, hay alguna manera de controlar un movimiento de ficheros entre directorios de diferentes volmenes con un Progressbar?
Lo estoy intentado hacer con un Thread y un timer pero siempre se mueve primero el archivo mientras la aplicacin no responde y no se actualiza la barra de progreso.

Extiendo el post con un breve ejemplo de lo que estoy haciendo. En una ventana aado 1 Progressbar, 1 Thread, 1 Timer, 1 PushButton:

PushButton
Action

// Variables en un mdulo
Dim progreso, j as integer
Dim CarpetaOrigen, CarpetaDestino as folderitem
Dim dlg as SelectFolderDialog
Dim dlg1 as SelectFolderDialog
dlg1= new SelectFolderDialog
dlg = new SelectFolderDialog
CarpetaOrigen=dlg1.ShowModal()
CarpetaDestino=dlg.ShowModal()

progreso = 0
j = carpetaorigen.Item(1).Length
ProgressBar1.Maximum =j
Timer1.Mode = window2.Timer1.ModeMultiple
Thread1.Run

Thread
Run

Dim i as integer
// justo aqu es donde deja de responder la aplicacin
carpetaorigen.item(1).MoveFileTo(CarpetaDestino)
//
for i =1 to j
progreso=i
next
Timer
Action

progressbar1.Value=progreso
If progressbar1.value = progressbar1.Maximum then
Me.Mode = Timer1.ModeOff
End If

Un saludo.