Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Async方法在从不同的程序集调用时未发出警告CS4014_C# - Fatal编程技术网

C# Async方法在从不同的程序集调用时未发出警告CS4014

C# Async方法在从不同的程序集调用时未发出警告CS4014,c#,C#,当直接调用与调用者位于同一程序集中的异步方法时,我们会收到预期的CS4014警告。但是,当从不同程序集调用该方法时,不会给出任何警告。在VS2015中,AsyncStateMachineAttribute存在于元数据中,但不会使编译器产生任何警告,而intellisence只显示警告 public class Caller { public Task CallWorkAsync() { // This call will not generate a compil

当直接调用与调用者位于同一程序集中的异步方法时,我们会收到预期的CS4014警告。但是,当从不同程序集调用该方法时,不会给出任何警告。在VS2015中,AsyncStateMachineAttribute存在于元数据中,但不会使编译器产生任何警告,而intellisence只显示警告

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,则会在一个位置显示警告。我只是想知道为什么会出现这种行为?