Как использовать IHTTPAsyncHandler?
Представьте, что у меня есть код для чтения от начала до конца файла, например:
while(sw.readline != null)
{
}
Я хочу, чтобы это было полностью асинхронным. Когда происходит от IHTTPAsyncHandler, куда будет идти этот код и куда будет идти код для получения содержимого каждой строки?
1 ответ
Решение
Недавно я добавил несколько асинхронных процессов на свои страницы ASP.NET, чтобы позволить некоторым длительным процессам происходить, пока пользователь ожидает результатов. Я нашел IHTTPAsyncHandler довольно неадекватным. Все, что он делает, это позволяет вам раскрутить новую ветку, пока страница начинает обрабатываться. Вам все еще нужно создать свой собственный поток и создать AsyncRequestResult.
Вместо этого я просто использовал нормальный поток в моем коде, гораздо более краткий:
using System;
using System.Web;
using System.Threading;
namespace Temp {
public partial class thread : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
Thread thread = new Thread(new ThreadStart(myAsyncProcess));
thread.Start();
}
private void myAsyncProcess() {
// Long running process
}
}
}