(ASP.NET 2.0, С#)

Мне нужно реализовать потоки, которые будут:

  1. Приписывается пользователю, запустившему поток (например, при обратном вызове я мог бы использовать идентификатор или имя потока для поиска потока, который пользователь ранее запустил).
  2. Если поток завершен, обратный вызов должен иметь возможность найти поток и узнать, что он завершен.
  3. Наконец, поток должен автоматически завершаться, если он активен, скажем, более минуты.

Я прочитал довольно много, и теперь я знаю, что мне нужно лично управлять потоками (например, я не могу использовать пул потоков asp.net) из-за требования (1), которое я перечислил выше. Я заметил, что класс Thread в C# имеет свойство ID; можно ли использовать этот идентификатор для реализации требования (1) (я не знаю, всегда ли этот идентификатор будет уникальным и т. д.)?

Кстати, я понимаю, что asp.net может прерывать потоки в определенные моменты. По сути, каждый раз, когда сеанс пользователя уничтожается, мой поток все равно бесполезен. Если поток потерпит неудачу или будет завершен по какой-либо причине, это нормально, потому что задача будет перезапущена. В основном меня беспокоит поиск способа, с помощью которого пользователь может найти запущенный поток. Можно ли это сделать, сохранив свойство ID в сеансе? Кроме того, если да, то как мне использовать это свойство, чтобы найти поток? Если нет, то каков рекомендуемый способ сделать то, что я прошу. Спасибо.

0
KyleM 18 Мар 2011 в 21:48
Какова настоящая причина, побудившая вас искать это? Потоки повторно используются ASP.NET, поэтому нет смысла приписывать их конкретному пользователю.
 – 
Mauricio Scheffer
18 Мар 2011 в 23:58

1 ответ

IIS определит для вас потоки ASP.Net. Вам не нужно управлять потоками самостоятельно. Возможно, вам потребуется настроить метод аутентификации (ссылка 1) или явно поместить объект IPrincipal в HttpContext.User (ссылка 2).

Блог IIS

Статья MSDN

0
matt-dot-net 18 Мар 2011 в 22:08