从运行任务获取堆栈跟踪

时间:2019-04-01 12:37:59

标签: c# .net task stack-trace

我想从正在运行的任务中获取堆栈跟踪,以了解在哪里被阻塞。

class Program
{
    static void Main(string[] args)
    {
        Task task = Task.Run((Action)DoSomething);
        if (!task.Wait(TimeSpan.FromSeconds(5)))
        {
            Console.WriteLine($"Timeout from the task {task.Id}.");
            Console.WriteLine(DisplayStackTrace(task));
        }
        Console.Read();
    }

    static void DoSomething()
    {
        Console.WriteLine("Being work");
        Task.Delay(TimeSpan.FromSeconds(10)).Wait();
        Console.WriteLine("End work");
    }

    static string DisplayStackTrace(Task task)
    {
        ?????
    }
}

您能帮我从任务中获取StackTrace吗?

这类似于How can I get stack trace of a currently executing Task?,但这个问题没有答案。

0 个答案:

没有答案