Cómo ejecutar mejor la consulta en segundo plano para no congelar la aplicación (.NET)

Mis aplicaciones WinForm necesitan ejecutar consultas complejas con un tiempo de ejecución significativo, no tengo influencia (aproximadamente 10 minutos) Cuando la consulta se está ejecutando, el usuario ve "la aplicación no responde" en el administrador de tareas, lo cual es realmente confuso para el usuario, y no es muy profesional. .

Creo que la consulta se ejecutará en un hilo diferente más o menos. He intentado algunos enfoques, pero tengo dificultades para que funcione realmente (ejecutar la consulta, forzar el resultado de la espera de la aplicación principal, volver a la aplicación principal, posibilidad de cancelar la ejecución, etc.)

Me pregunto si tiene una solución de trabajo propia / buena para eso. @Code muestras también serían muy bienvenidas:)

También creo que puede haber algunas utilidades / marcos listos para usar que permitan una ejecución simple de eso.

Respuestas a la pregunta(3)

Su respuesta a la pregunta