草庐IT

Async-await

全部标签

c# - 无法声明接口(interface) "async Task<myObject> MyMethod(Object myObj); "

这个问题在这里已经有了答案:Error:"Cannotuse'async'onmethodswithoutbodies".Howtoforceasyncchildoverrides?(2个答案)关闭去年。我无法声明interfaceIMyInterface{asyncTaskMyMethod(ObjectmyObj);}编译器告诉我:修饰符async对此项目无效async修饰符只能用于有主体的方法这是应该实现的东西,还是async&await的性质禁止这种情况发生?

c# - 无法声明接口(interface) "async Task<myObject> MyMethod(Object myObj); "

这个问题在这里已经有了答案:Error:"Cannotuse'async'onmethodswithoutbodies".Howtoforceasyncchildoverrides?(2个答案)关闭去年。我无法声明interfaceIMyInterface{asyncTaskMyMethod(ObjectmyObj);}编译器告诉我:修饰符async对此项目无效async修饰符只能用于有主体的方法这是应该实现的东西,还是async&await的性质禁止这种情况发生?

c# - 是否可以使用 .NET 异步方法获得良好的堆栈跟踪?

我在WebApi应用程序中设置了以下示例代码:[HttpGet]publicdoubleGetValueAction(){returnthis.GetValue().Result;}publicasyncTaskGetValue(){returnawaitthis.GetValue2().ConfigureAwait(false);}publicasyncTaskGetValue2(){thrownewInvalidOperationException("Couldn'tgetvalue!");}遗憾的是,当GetValueAction被命中时,返回的堆栈跟踪是:"atMyProjec

c# - 是否可以使用 .NET 异步方法获得良好的堆栈跟踪?

我在WebApi应用程序中设置了以下示例代码:[HttpGet]publicdoubleGetValueAction(){returnthis.GetValue().Result;}publicasyncTaskGetValue(){returnawaitthis.GetValue2().ConfigureAwait(false);}publicasyncTaskGetValue2(){thrownewInvalidOperationException("Couldn'tgetvalue!");}遗憾的是,当GetValueAction被命中时,返回的堆栈跟踪是:"atMyProjec

c# - 接口(interface)和异步方法

我有一个应用程序。此应用程序使用一个接口(interface)来访问数据库。这个接口(interface)可以被很多类实现。例如,一个使用EF4.4,但其他类可以使用效率更高的EF5。将来我可能会使用EF6,因为它使用异步方法。在此示例中,所有方法都使用EF,但也许其他选项可以使用其他方式。应用程序是一次编码,使用接口(interface),并根据配置文件,使用一个实现或另一个,所以我只需要修改一个地方的代码,即构造函数,以在实例化中添加新选项分配给接口(interface)的类。目前类的所有方法都不是async,但将来如果我使用EF6我想使用异步方法,所以我不知道是否可以使用EF6并

c# - 接口(interface)和异步方法

我有一个应用程序。此应用程序使用一个接口(interface)来访问数据库。这个接口(interface)可以被很多类实现。例如,一个使用EF4.4,但其他类可以使用效率更高的EF5。将来我可能会使用EF6,因为它使用异步方法。在此示例中,所有方法都使用EF,但也许其他选项可以使用其他方式。应用程序是一次编码,使用接口(interface),并根据配置文件,使用一个实现或另一个,所以我只需要修改一个地方的代码,即构造函数,以在实例化中添加新选项分配给接口(interface)的类。目前类的所有方法都不是async,但将来如果我使用EF6我想使用异步方法,所以我不知道是否可以使用EF6并

c# - 'await' 运算符只能在异步 lambda 表达式中使用

我有一个c#Windows应用商店应用程序。我正在尝试在单击另一个MessageDialog中的命令按钮之一时启动MessageDialog。这样做的目的是警告用户他们的内容未保存,如果他们单击取消,它将提示他们使用单独的保存对话框进行保存。这是我的“showCloseDialog”函数:privateasyncTaskshowCloseDialog(){if(b_editedSinceSave){varmessageDialog=newMessageDialog("Unsavedworkdetected.Closeanyway?","ConfirmationMessage");mes

c# - 'await' 运算符只能在异步 lambda 表达式中使用

我有一个c#Windows应用商店应用程序。我正在尝试在单击另一个MessageDialog中的命令按钮之一时启动MessageDialog。这样做的目的是警告用户他们的内容未保存,如果他们单击取消,它将提示他们使用单独的保存对话框进行保存。这是我的“showCloseDialog”函数:privateasyncTaskshowCloseDialog(){if(b_editedSinceSave){varmessageDialog=newMessageDialog("Unsavedworkdetected.Closeanyway?","ConfirmationMessage");mes

c# - C# 中的 Promise 等价物

在Scala中,有一个Promise类可用于手动完成Future。我正在寻找C#中的替代方案。我正在写一个测试,我希望它看起来像这样://varMyResulthasafield`Header`varpromise=newPromise;handlerMyEventsWithHandler(msg=>promise.Complete(msg););//Waitfor2secondsvarmyResult=promise.Future.Await(2000);Assert.Equals("myheader",myResult.Header);我知道这可能不是C#的正确模式,但我想不出一个

c# - C# 中的 Promise 等价物

在Scala中,有一个Promise类可用于手动完成Future。我正在寻找C#中的替代方案。我正在写一个测试,我希望它看起来像这样://varMyResulthasafield`Header`varpromise=newPromise;handlerMyEventsWithHandler(msg=>promise.Complete(msg););//Waitfor2secondsvarmyResult=promise.Future.Await(2000);Assert.Equals("myheader",myResult.Header);我知道这可能不是C#的正确模式,但我想不出一个