(ASP.NET 2.0, С#)
Мне нужно реализовать потоки, которые будут:
- Приписывается пользователю, запустившему поток (например, при обратном вызове я мог бы использовать идентификатор или имя потока для поиска потока, который пользователь ранее запустил).
- Если поток завершен, обратный вызов должен иметь возможность найти поток и узнать, что он завершен.
- Наконец, поток должен автоматически завершаться, если он активен, скажем, более минуты.
Я прочитал довольно много, и теперь я знаю, что мне нужно лично управлять потоками (например, я не могу использовать пул потоков asp.net) из-за требования (1), которое я перечислил выше. Я заметил, что класс Thread в C# имеет свойство ID; можно ли использовать этот идентификатор для реализации требования (1) (я не знаю, всегда ли этот идентификатор будет уникальным и т. д.)?
Кстати, я понимаю, что asp.net может прерывать потоки в определенные моменты. По сути, каждый раз, когда сеанс пользователя уничтожается, мой поток все равно бесполезен. Если поток потерпит неудачу или будет завершен по какой-либо причине, это нормально, потому что задача будет перезапущена. В основном меня беспокоит поиск способа, с помощью которого пользователь может найти запущенный поток. Можно ли это сделать, сохранив свойство ID в сеансе? Кроме того, если да, то как мне использовать это свойство, чтобы найти поток? Если нет, то каков рекомендуемый способ сделать то, что я прошу. Спасибо.
1 ответ
IIS определит для вас потоки ASP.Net. Вам не нужно управлять потоками самостоятельно. Возможно, вам потребуется настроить метод аутентификации (ссылка 1) или явно поместить объект IPrincipal в HttpContext.User (ссылка 2).
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.