C# Async方法在从不同的程序集调用时未发出警告CS4014
当直接调用与调用者位于同一程序集中的异步方法时,我们会收到预期的CS4014警告。但是,当从不同程序集调用该方法时,不会给出任何警告。在VS2015中,AsyncStateMachineAttribute存在于元数据中,但不会使编译器产生任何警告,而intellisence只显示警告C# Async方法在从不同的程序集调用时未发出警告CS4014,c#,C#,当直接调用与调用者位于同一程序集中的异步方法时,我们会收到预期的CS4014警告。但是,当从不同程序集调用该方法时,不会给出任何警告。在VS2015中,AsyncStateMachineAttribute存在于元数据中,但不会使编译器产生任何警告,而intellisence只显示警告 public class Caller { public Task CallWorkAsync() { // This call will not generate a compil
public class Caller
{
public Task CallWorkAsync()
{
// This call will not generate a compile error
Class1 c = new Class1(); // from different Assembly
c.DoWorkAsync();
// This call will generate a compile error
var c2 = new InSameAssembly();
c2.DoWorkAsync();
return Task.FromResult<bool>(true);
}
}
public class InSameAssembly
{
public async Task DoWorkAsync()
{
await Task.Yield();
}
}
公共类调用者
{
公共任务CallWorkAsync()
{
//此调用不会生成编译错误
Class1 c=新的Class1();//来自不同的程序集
c、 DoWorkAsync();
//此调用将生成编译错误
var c2=新的InSameSembly();
c2.DoWorkAsync();
返回Task.FromResult(true);
}
}
公共类程序集
{
公共异步任务DoWorkAsync()
{
等待任务;
}
}
你的问题是什么?如果要报告错误,请将其报告给Microsoft。如果我选择过滤器为Build+intellisence,则会在两次调用中显示警告,但如果我选择BuildOnly,则会在一个位置显示警告。我只是想知道为什么会出现这种行为?你有什么问题?如果要报告错误,请将其报告给Microsoft。如果我选择过滤器为Build+intellisence,则会在两次调用中显示警告,但如果我选择BuildOnly,则会在一个位置显示警告。我只是想知道为什么会出现这种行为?