草庐IT

Async-await

全部标签

c# - 如何处理 xUnit .net 的 Assert.Throws<T> 中任务抛出的异常?

以下异步xUnit.net用lambda测试标有async修饰符通过报告没有抛出异常而失败:[Theory,AutoWebData]publicasyncTaskSearchWithNullQueryThrows(SearchServicesut,CancellationTokendummyToken){//Fixturesetup//ExercisesystemandverifyoutcomeAssert.Throws(async()=>awaitsut.SearchAsync(null,dummyToken));//Teardown}确保ArgumentNullException实

c# - 将长时间运行的任务与异步/等待模式结合起来的正确方法是什么?

我有一个“高精度”定时器类,我需要它能够启动、停止和暂停/恢复。为此,我将我在Internet上找到的几个不同的示例结合在一起,但我不确定我是否正确地将Tasks与asnyc/await结合使用。这是我的相关代码://basedonhttp://haukcode.wordpress.com/2013/01/29/high-precision-timer-in-netc/publicclassHighPrecisionTimer:IDisposable{Task_task;CancellationTokenSource_cancelSource;//basedonhttp://blogs

c# - 将长时间运行的任务与异步/等待模式结合起来的正确方法是什么?

我有一个“高精度”定时器类,我需要它能够启动、停止和暂停/恢复。为此,我将我在Internet上找到的几个不同的示例结合在一起,但我不确定我是否正确地将Tasks与asnyc/await结合使用。这是我的相关代码://basedonhttp://haukcode.wordpress.com/2013/01/29/high-precision-timer-in-netc/publicclassHighPrecisionTimer:IDisposable{Task_task;CancellationTokenSource_cancelSource;//basedonhttp://blogs

c# - 'context' 在 C# async/await 代码中到底意味着什么?

让我们看一些简单的C#async/await代码,其中我在使用ConfigureAwait(false)await之前和之后有一个对象引用(obj)/privateasyncTaskAnAsyncLibraryMethod(SomeObjectobj){Console.WriteLine(Thread.CurrentThread.ManagedThreadId);obj.Name="Harry";//ConfigureAwait(false)似乎意味着不将延续编码回捕获的原始上下文-好的,但这到底是什么意思?我已经尝试了上面的代码并且objIS被正确引用回来(即使它在不同的线程上恢复)

c# - 'context' 在 C# async/await 代码中到底意味着什么?

让我们看一些简单的C#async/await代码,其中我在使用ConfigureAwait(false)await之前和之后有一个对象引用(obj)/privateasyncTaskAnAsyncLibraryMethod(SomeObjectobj){Console.WriteLine(Thread.CurrentThread.ManagedThreadId);obj.Name="Harry";//ConfigureAwait(false)似乎意味着不将延续编码回捕获的原始上下文-好的,但这到底是什么意思?我已经尝试了上面的代码并且objIS被正确引用回来(即使它在不同的线程上恢复)

c# - 使用 HttpWebRequest.GetResponseAsync 进行异步和等待

我在发出Web请求时尝试使用Async和Await,但发现它永远不会超过等待线。我是通过Metro应用程序执行此操作的,但我也在winforms应用程序中验证了该问题。publicasyncTaskDoSomething(){stringurl="http://imgur.com/gallery/VcBfl.json";HttpWebRequestrequest=HttpWebRequest.CreateHttp(url);varws=awaitrequest.GetResponseAsync();returnws.ResponseUri.ToString();;}如果我不使用awai

c# - 使用 HttpWebRequest.GetResponseAsync 进行异步和等待

我在发出Web请求时尝试使用Async和Await,但发现它永远不会超过等待线。我是通过Metro应用程序执行此操作的,但我也在winforms应用程序中验证了该问题。publicasyncTaskDoSomething(){stringurl="http://imgur.com/gallery/VcBfl.json";HttpWebRequestrequest=HttpWebRequest.CreateHttp(url);varws=awaitrequest.GetResponseAsync();returnws.ResponseUri.ToString();;}如果我不使用awai

c# - 如何取消await Task.Delay()?

正如您在这段代码中看到的:publicasyncvoidTaskDelayTest(){while(LoopCheck){for(inti=0;i我希望它在一秒内将文本框设置为i的字符串值,直到我将LoopCheck值设置为false。但它所做的是为所有人创建所有迭代,即使我将LoopCheck值设置为false,它仍然会异步执行它的操作。当我设置LoopCheck=false时,我想取消所有等待的Task.Delay()迭代。我怎样才能取消它? 最佳答案 使用overloadTask.Delay接受CancellationToke

c# - 如何取消await Task.Delay()?

正如您在这段代码中看到的:publicasyncvoidTaskDelayTest(){while(LoopCheck){for(inti=0;i我希望它在一秒内将文本框设置为i的字符串值,直到我将LoopCheck值设置为false。但它所做的是为所有人创建所有迭代,即使我将LoopCheck值设置为false,它仍然会异步执行它的操作。当我设置LoopCheck=false时,我想取消所有等待的Task.Delay()迭代。我怎样才能取消它? 最佳答案 使用overloadTask.Delay接受CancellationToke

c# - 通过WCF服务的独立自跟踪实体的异步延迟加载导航属性?

我有一个WCF客户端,它将自跟踪实体传递给使用MVVM构建的WPF应用程序。应用程序本身具有动态接口(interface)。用户可以根据自己所扮演的角色或正在执行的任务来选择希望在工作区域中看到的对象。我的自跟踪实体具有很多导航属性,并且不需要很多。由于其中一些对象可能很大,因此我只想按要求加载这些属性。我的应用程序如下所示:[WCF][ClientSideRepository][ViewModel][View]我的模型是自我跟踪实体。客户端存储库在将模型返回给请求它的ViewModel之前,先连接了LazyLoad方法(如果需要)。所有WCF服务调用都是异步的,这意味着LazyLoa