想知道在 javascript 中可行的方法是否可以在 C# 中使用。
在 javascript 应用程序中,当必须一个接一个地发出大量 Web 请求时,可以通过避免 for 循环,而是使用堆栈(数组)和事件来保持 UI 响应。下一个 URL 从成功事件处理程序的数组中弹出,它会不断发出另一个请求,直到堆栈为空。可以在带有堆栈的 C# 中采用类似的方法吗?以下是合法的吗?
urlStack .... // stack of urls
myRequestMaker = new WebRequestMaker(); // my custom object
myRequestMaker.ResponseReceived += (s,e) =>
{
// e contains info whether the request succeeded, failed, or timed out
url = pop another url from urlStack if it's not empty
(s as WebRequestMaker).MakeWebRequest(url);
}
url = pop first url from urlStack
myRequestMaker.MakeWebRequest(url);
(当请求超时时,WebRequestMaker 对象也会引发ReponseReceived事件,顺便说一句)
在 javascript 中,您可以使用这种方法达到最大递归限制,为了解决这个问题,您可以将在成功事件处理程序中进行的方法调用包装在 SetTimeout 中。在 ResponseReceived 事件处理程序中调用 myRequestMaker 的MakeWebRequest方法会遇到类似的问题吗?