- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在异步处理程序中,我从 webrequest 创建了一个 IObservable,它返回一个重定向字符串。
我正在订阅那个可观察对象并调用 AsyncResult.CompleteCall() 但我不得不使用 Thread.Sleep(100) 来执行它。而且不是每次都有效。我很确定这是不正确的。你能发光吗?谢谢!
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object state)
{
_context = context;
_ar = new AsyncResult(cb, state);
_tweet = context.Request["tweet"];
string url = context.Request["url"];
if(String.IsNullOrEmpty(_tweet) || String.IsNullOrEmpty(url))
{
DisplayError("<h2>Tweet or url cannot be empty</h2>");
return _ar;
}
_oAuth = new oAuthTwitterRx();
using (_oAuth.AuthorizationLinkGet().Subscribe(p =>
{
_context.Response.Redirect(p);
_ar.CompleteCall();
},
exception => DisplayError("<h2>Unable to connect to twitter, please try again</h2>")
))
return _ar;
}
public class AsyncResult : IAsyncResult
{
private AsyncCallback _cb;
private object _state;
private ManualResetEvent _event;
private bool _completed = false;
private object _lock = new object();
public AsyncResult(AsyncCallback cb, object state)
{
_cb = cb;
_state = state;
}
public Object AsyncState
{
get { return _state; }
}
public bool CompletedSynchronously
{
get { return false; }
}
public bool IsCompleted
{
get { return _completed; }
}
public WaitHandle AsyncWaitHandle
{
get
{
lock (_lock)
{
if (_event == null)
_event = new ManualResetEvent(IsCompleted);
return _event;
}
}
}
public void CompleteCall()
{
lock (_lock)
{
_completed = true;
if (_event != null)
_event.Set();
}
if (_cb != null)
_cb(this);
}
}
最佳答案
迟到总比不到好;我认为以下文章准确地解释了您要实现的目标:http://blogs.msdn.com/b/jeffva/archive/2010/09/15/rx-on-the-server-part-5-of-n-observable-asp-net.aspx
关于c# - IHttpAsyncHandler 和 IObservable 网络请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596398/
我正在尝试设置一个异步 HttpHandler,但我不知道我是否在正确的轨道上。似乎没有太多关于它的文档。我只想获取异步触发 DoWork() 方法的请求。 一些我不确定的事情: using Syst
我注意到 .NET IHttpAsyncHandler(和 IHttpHandler,在较小程度上)在受到并发 Web 请求时会泄漏内存。 在我的测试中,Visual Studio Web 服务器 (
我正在使用 IHttpHandler 调用 Web 服务并将生成的 byte[] 作为下载的文件附件返回给客户端。这工作正常,但是当我尝试将 IHttpHandler 更改为 IHttpAsyncHa
我尝试在 web.config 文件中设置executionTimeout: 查看 IIS 管理器请求页面,我可以看到请求在 30 秒后没有被终止。 我应该在 IHttpAsyncHandler
我尝试使用 IHttpAsyncHandler 在请求管道中注入(inject)解码过滤器,但我发现 Request.Filter 属性被忽略了。 有人成功地将 Request.Filter 与 IH
我已经通过 IHttpAsyncHandler 使用 .Net 异步编程模型在 C# 中实现了异步 http 请求处理。 我是 java 的新手,但想完成相同的目的——开始一个请求,让它交出请求处理线
在异步处理程序中,我从 webrequest 创建了一个 IObservable,它返回一个重定向字符串。 我正在订阅那个可观察对象并调用 AsyncResult.CompleteCall() 但我不
这是基本设置。我们有一个 ASP.Net WebForms 应用程序,其页面包含一个需要访问外部 Web 服务的 Flash 应用程序。由于(我推测的安全性)Flash 的限制(别问我,我根本不是 F
我制作了一个派生自 MvcHandler 的自定义处理程序。我的路由使用自定义 RouteHandler,它返回 GetHttpHandler() 的新处理程序,并且我在自定义处理程序中重写 Proc
我正在开发一个基于 Martin Fowler (link) 模式的 HTTP 前端 Controller 。就我而言, Controller 具有以下职责:- 解码封装数据- 授权请求- 记录- 将
我在我的类(class)中实现了 IHttpAsyncHandler 以在后台执行 5-6 个长时间运行的进程,并在每个任务开始时向客户端确认。 早些时候我使用一个 session 变量并用任务的当前
Java 世界中的 ASP.NET IHttpAsyncHandler 等价物是什么? 最佳答案 查看最新 Servlet 规范 (3.0) 中的异步支持:http://blogs.oracle.co
自从开始编写 ASP.NET 应用程序时,当我想添加线程时,我可以通过 3 种简单的方法在 ASP.NET 应用程序中完成线程: 使用System.Threading.ThreadPool。 使用自定
在此 question & answer ,我找到了一种让 ASP.NET MVC 支持异步处理的方法。但是,我无法让它发挥作用。 基本上,这个想法是创建一个新的 IRouteHandler 实现,它
我在使用实现 IHttpAsyncHandler 的通用处理程序时遇到了一些性能问题。最简单的是,处理程序接收 GET 请求,并在 20 秒后将“”写入响应后结束响应。 当使用 10000-20000
我是一名优秀的程序员,十分优秀!