2010-05-29 3 views
2

в этом sample, созданы два потока; рабочий поток, созданный BeginInvoke, и поток завершения ввода-вывода, созданный методом SendAsync.асинхронные вызовы в asp.net

но another author в своем примере UnsafeQueueNativeOverlapped, не рекомендуется это делать.

Я хочу использовать SendAsync или ... Async на странице asp.net, и я хочу использовать страницуAsyncTask. Однако его BeginEventHandler требует возврата AsyncResult, который SendAsync не возвращает.

afaik, основанный на событиях асинхронный шаблон является наиболее рекомендуемым способом, так как мы можем назвать SendAsync или любой ... Асинхронные методы без создания двух потоков и ухудшения производительности?

ответ

3

На самом деле, если вы использовали beginIvoke и endInvoke для делегатов или ThreadPool.WorkerItem, это не повлияет на ваше приложение, потому что они используют тот же поток, который использует asp.net для iis , поэтому теперь у вас есть только 2 решения чтобы сделать асинхронные вызовы, сначала вы напишите свои собственные классы потоков (но будьте осторожны) второй используйте PageAsyncTasks (рекомендуется), этот гораздо более безопасный, и он идеально подходит для работы с asp.net

Это не о том, чтобы повредить производительность насколько важно, как и когда использовать asnyc-задачи , если ваш процесс действительно занимает много времени, пока он не завершится (поскольку IIS будет ждать, пока все процессы завершат даже асинхронные п начать рендеринг), то вы должны пойти в асинхронном решение вместо этого он будет делать ничью назад в исполнении

Примечание:

есть разница между AddOnPreRenderCompleteAsync и RegisterAsyncTask в там реализации они выглядят одинаково, но во втором

  1. у вас есть доступ к текущим HTTP контекста, олицетворения, культуры и профиля данных и т.д.
  2. вы можете запускать множество задач параллельно
  3. у вас есть время ожидания события, и вы можете определить тайм-аут на странице атрибут
  4. вы можете позвонить RegisterAsyncTask несколько раз в одном запросе на регистровых несколько асинхронных операции
Смежные вопросы