Это на самом деле не связано с зависанием, но если вы хотите запустить некоторые вещи параллельно, вы можете использовать что-то похожее на приведенное ниже:
public void Test() {
List<Task> tasks = new List<Task>();
tasks.Add(Task.Run(() => {
// your code here
}));
tasks.Add(Task.Run(() =>
{
// your other parallel code here
}));
Task.WhenAll(tasks).Wait();
}
Если вы используете более новую версию hangfire, он поддерживает асинхронный метод дляфоновые задания, так что вы просто измените последнюю строку на await Task.WhenAll(tasks);
.