Hola astrow25
Eso lo haces con
backgroundWorker agregar un control backgroundWorker a tu formulario, y el codigo de ejecución de tu tarea lo agregas ahi, al DoWork, y lo mandas a ejecutar.
Algo asi.
Código:
private void button_Lanzar_Click(object sender, EventArgs e)
{
panel_Mensaje.Visible = true;
backgroundWorker_Tarea.RunWorkerAsync();
}
Por ejemplo a mi se me ocurre que en un panel antes de ejecutar el background muestre un GIF con un reloj de procesando, cuando termine el background, ocultas el GIF, por que tu tarea termino.
Espero te sirva.
Suerte.