2010-11-12 2 views
1

Я изучаю асинхронные веб-страницы async="True". В Page_Load я регистрирую 3 задачи с помощью RegisterAsyncTask. Каждая из этих задач вызывает хранимую процедуру SQL Server. Хранимая процедура делает простой выбор и ждет пару секунд, используя WAITFOR DELAY '00:00:02'
Моя проблема заключается в том, что для того, чтобы вернуться ко мне, а не всего за 2 секунды, страницы занимают 6 секунд.PageAsyncTask не работает в параллельном режиме

Это след страницы.

 
aspx.page Begin Load   0.000173230943152662 0.000013 
Inside  BeginAsyncOperation1 0.000268187163843751 0.000095 
Inside  BeginAsyncOperation2 0.000517126445114984 0.000249 
Inside  BeginAsyncOperation3 0.000642237681836351 0.000125 
aspx.page End Load    6.09175786420362  6.09111 
Любые идеи/предложения?

+0

Я столкнулся с этой проблемой только сейчас. Pro Asp.net 4 говорит, что задачи выполняются параллельно, но, читая исходный код класса страницы, я обнаружил, что задачи фактически обрабатываются последовательно. – zhy2002

ответ

1

Оказалось, что вы можете использовать параметр «executeInParallel» конструктора PageAsyncTask для управления этим поведением.

+0

Я уже использую последний параметр как истинный 'PageAsyncTask task1 = new PageAsyncTask (новый BeginEventHandler (BeginAsyncOperation1), новый EndEventHandler (EndAsyncOperation1), новый EndEventHandler (TimeoutAsyncOperation1), null, true) ;, но они запускаются последовательно. –