Проблема в том, что мне нужно получить данные с SQL-сервера, используя хранимую процедуру, которая обычно занимает больше 10 секунд. Я пытался передать эту задачу потоку. В потоке, когда он получает данные, таблица хранится в переменной сеанса, которая будет использоваться на последующих страницах.Можно ли создать переменную сеанса в потоке?
Thread thread = new Thread(delegate() {Session["dashboardPatientrecords"]=df.getPatients(); });
thread.Start();
нить работает нормально вытягивать данные, но, как перейти на следующую страницу и попытайтесь получить доступ к переменной сессии, как
var dt=(DataTable)Session["dashboardPatientrecords"];
в «DT» установлен нулевой
пожалуйста, помогите
спасибо
Назначить Session ["dashboardPatientrecords"] некоторое значение при загрузке первой страницы, чтобы вы могли определить, не изменилась ли переменная сеанса в потоке, который вы выполнили? Попробуйте написать некоторый журнал после добавления результата в сеанс. Кроме того, убедитесь, что вы не помещаете большие данные в сеанс для сохранения памяти. – Adil
Вы не должны, в общем, разделять задачи на другие потоки в asp.net. Кроме того, помните, что бы вы ни делали за кулисами, asp.net по-прежнему HTTP - один запрос генерирует один ответ - поэтому, если что-то занимает десять секунд, вам все равно нужно подождать эти десять секунд, прежде чем вы сможете завершить свой ответ. Кроме того, я не совсем понимаю, какова ваша фактическая проблема. –
@Damien_The_Unbeliever удален – niksofteng