Por si a alguien le sirve
Public Sub ExecutarProcessoDemorado()
' Obtener la ventana principal (puede ser un formulario principal de tu aplicación)
Dim owner As IWin32Window = Form.ActiveForm
' Llamar a la función MostraDialogoEsperaAsync
Dim resultado As DialogResult = PSO.MensagensDialogos.MostraDialogoEsperaAsync(
owner,
"Procesando, por favor espere...",
Sub(progress As Progress(Of Integer), token As CancellationToken)
' Simulación de un proceso largo con actualización de progreso
For i As Integer = 1 To 100
If token.IsCancellationRequested Then Exit For ' Permite la cancelación
Thread.Sleep(50) ' Simula trabajo
CType(progress, IProgress(Of Integer)).Report(Convert.ToInt32(CDec(i)))
Next
End Sub
)
' Verificar el resultado
If resultado = DialogResult.OK Then
MessageBox.Show("Proceso completado correctamente.")
Else
MessageBox.Show("Proceso cancelado.")
End If
End Sub