dim*_*mio 6 c# attributes visual-studio async-await
所以,我有以下代码:
static void Main(string[] args)
{
var test1 = GeneratedHelperSync();
var test2 = GeneratedHelperAsync().Result;
}
[System.Diagnostics.DebuggerNonUserCode]
static int GeneratedHelperSync()
{
return RealCode();
}
[System.Diagnostics.DebuggerNonUserCode]
async static Task<int> GeneratedHelperAsync()
{
// F11 steps in here!
return await Task.FromResult(RealCode());
}
private static int RealCode()
{
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我是F11(步入)通过Visual Studio 2013中的所有语句.我希望在Main()的两个调用中都可以将我引入"return 1"语句.但是,在第二种情况下,它将我带入异步功能.
似乎编译器在异步代码生成期间删除了我的DebuggerNonUserCode.
我的问题是,为什么这样做?我错过了什么吗?
至于为什么我想要这个,我有一些自动生成的辅助异步函数,我想避免一直踩到它们.
async这是/模式的一个常见“问题” await。这种情况发生在添加到async方法中的所有属性上(我也遇到过这种情况ExcludeFromCodeCoverageAttribute,并对其进行了一些研究)。
发生的情况是,编译器在 处拆分该方法,await并将“之后await”的所有内容放入一个新方法中,该方法在 'ed 任务完成时调用await。这个新方法没有从初始方法中获取属性 - 为什么我不知道。
我知道解决这个问题的唯一方法是ExcludeFromCodeCoverageAttribute在类级别设置属性。
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |