Как делает HttpContext. Текущая работа в многопоточной среде?

Vuze (раньше Azereus) хорош, но моя главная рекомендация, на которую я натыкался, YourSQL. Это - фантастический маленький клиент MySQL для OS X, и я использовал его больше 1,5 лет, прежде чем я узнал, что это был Java. Это было очень хорошо сделано. Ничего подобного классический "медленный неинтегрированный спам" многие люди не связывается с JAVA-приложениями.

12
задан Joel Martinez 13 October 2009 в 15:36
поделиться

2 ответа

То, что говорит Марк, наиболее вероятно для того, что вам нужно, однако ASP.NET на самом деле несколько сложнее, чем то, что делает ThreadStatic, потому что отдельные запросы фактически могут обрабатываться несколькими потоками. . что, как я считаю, происходит с ASP.NET, так это то, что выполняющемуся потоку явно предлагается переключить контекст, конечно, среда размещения планирует потоки, и у нее есть контекст того, какой httpcontext необходимо выполнить, поэтому он находит поток, сообщает потоку, который контекст, в котором он должен работать ... а затем отправляет его на своем пути.

Так что решение действительно не так уж печально, поскольку threadstatic намного проще и, вероятно, подходит для 95% времени.

8
ответ дан 2 December 2019 в 06:45
поделиться

Это не AppDomain для каждого запроса. Если вы хотите использовать состояние, зависящее от потока, попробуйте:

[ThreadStatic]
private static int foo;
public static int Foo {get {return foo;} set {foo = value;}}

Теперь каждый поток получает свое собственное значение Foo (или, скорее, 'foo').

Это , а не ] следует использовать осторожно - он требует затрат, но является допустимым способом совместного использования состояния для каждого потока. Я использовал это один раз, может быть, дважды - и я написал много C #. Не злоупотребляйте им ...

В частности, остерегайтесь проблем с инициализацией (например, забывая сделать это), и не забывайте убирать за собой и т. Д. И будьте очень осторожны, если вы используйте любой асинхронный код, так как любые callback-функции / worker / etc будут иметь другое состояние.

15
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: