2
私はこのように私の関数と呼ばれるメソッドの名前を取得したい、それはTplで少し問題があるようですTPLを使用している場合にのみ、独自のメソッドからスタックトレースを取得する方法は?
良い解決策はありますか?
ところで:CallerMemberNameを知っI、しかし、私は別のソリューションをしたいのでここに私のコード
を乱雑にしません、私のテストコードはとてもTPL
class Program
{
static void Main(string[] args)
{
Console.WriteLine(F1().Result);
Console.ReadKey();
}
static async Task<string> F1()
{
return await F2();
}
static Task<string> F2()
{
var callingMethods = new StackTrace().GetFrames().Select(v => v.GetMethod().Name);
var result = string.Join(Environment.NewLine, callingMethods);
return Task.FromResult(result);
}
}
の次のバージョンで破ることができるですそして、これは
F2
MoveNextメソッドの出力である
スタート
F1
メイン
...
**それはTPLに問題のビットですなぜあなたは**と考えていますか? – Maarten
彼らはそこに別のレイヤーを置くので – Yacov