asp.net - 异步HttpWebRequest,无需等待Web应用程序

asp.net - 异步HttpWebRequest,无需等待Web应用程序

在我的Web应用程序(ASP.NET)中,我有一块代码块,它使用HttpWebRequest来调用REST服务并继续执行。 现在,它比我想要完成完整的Web请求需要更长的时间。 问题是REST服务返回的内容没有用处。 理想情况下,我想向REST服务发送异步Web请求,然后不等待响应。 问题是我已经尝试过了 request.BeginGetResponse(New AsyncCallback(Ad…


c# - 如何使异步方法返回一个值?

我知道如何制作Async方法但是我说有一个方法可以做很多工作然后返回一个布尔值? 如何在回调中返回布尔值? 澄清:public bool Foo(){ Thread.Sleep(100000);// Do work return true;}我希望能够使这个异步。…



C#5异步/等待-是*并发*?

我一直在考虑C#5中新的异步内容,并提出了一个特别的问题。 我知道await关键字是一个简洁的编译器技巧/语法糖来实现继续传递,其中方法的其余部分被分解为Task对象并排队等待按顺序运行,但是控制返回给调用方法。 我的问题是,我听说目前这一切都在一个线程上。 这是否意味着这种异步内容实际上只是将连续代码转换为Task对象,然后在每个任务完成之后调用Application.DoEvents()…


asynchronous - TaskCompletionSource-尝试理解无线程异步工作

我试图理解TaskCompletionSource的目的及其与异步/无线工作的关系。 我想我有一般的想法,但我想确保我的理解是正确的。 我首先开始研究任务并行库(TPL),以确定是否有一种很好的方法来创建自己的无线/异步工作(比如说你试图提高ASP.NET站点的可伸缩性)以及对TPL的理解看起来它将来会非常重要( async/await)。 这让我进入了TaskCompletionSour…


c# - 并行运行异步方法8次

如何将以下内容转换为Parallel.ForEach? public async void getThreadContents(String[] threads){HttpClient client=new HttpClient(); List<String> usernames=new List<String>(); int i=0; fore…


c# - 在asp.net mvc中点火并忘记异步方法

here和here的一般答案都是使用async/await,而是使用Task.Run或TaskFactory.StartNew来代替传递同步方法。 但是,有时我想要发射并忘记的方法是异步的,并且没有等效的同步方法。 更新注释/警告:正如Stephen Cleary在下面指出的那样,在您发送响应后继续处理请求是危险的。 原因是AppDomain可能会在该工作仍在进行时关闭。 有关详细信息,…


c# - 最好的异步方法

我需要编写一些异步代码,本质上试图重复谈话和初始化数据库。 通常第一次尝试会失败,因此需要重试。 在古老的日子里,我会使用类似于: void WaitForItToWork(){bool succeeded=false; while(!succeeded){// do work succeeded=outcome;//…


c# - 在基类上使用虚拟异步方法是否可以?

我正在使用一些代码,我有2个类,逻辑和代码非常相似。 我在两个类上都protected async void LoadDataAsync()方法。 目前我正在重构它并考虑将共享逻辑移动到基类。 在基类上使用virtual async方法并在派生类上覆盖它是否可以? 它有什么问题吗? 我的代码如下所示: public class Base{protected virtual asy…


c# - 查找未等待的异步方法调用

当我将一个ASP.NET应用程序迁移到async/await模型时,我偶然发现了一个相当危险的场景。 情况是,我做了一个方法异步: async Task DoWhateverAsync(),更改接口的声明Task DoWhateverAsync()并希望编译器会通过该警告告诉我现在的代码是错误的。 好吧,好运。 无论通过接口注入哪个对象,警告都不会发生。:-( 这很危险 有没有办法自…




async await详解 await 异步转同步 多个await 编写异步方法 configureawait用法 await用法 异步线程 异步执行