Вы повторно использовали имя corners_map
для изображения, а также для функции. Поскольку функции в Python являются первоклассными, вы можете передавать их как аргументы функции. В этой строке corners = feature.corner_peaks(corners_map)
, corners_map
, на которую вы ссылаетесь, является определенной выше функцией. Просто переименуйте функцию, изображение или оба.
Я попытался бы не держать ссылку на объект, который зависит от стека ASP.NET как HttpContext. Если необходимо сделать некоторую работу в другом потоке, это - потому что Вы не хотите ожидать в ASP.NET один, пока Ваша задача не закончена. И возможно Запрос/Контекст/Сессия завершается, в то время как Ваш поток не.
необходимо передать объект с данными, необходимыми для потока.
Можно получить доступ к кэшу ASP.NET с HttpRuntime. Кэш , даже когда у Вас нет HttpContext, но к сожалению Вы не можете сервер доступа или Запрос.
, Если Вы думаете об этом, это имеет смысл - Вы не служите никакой странице, таким образом, у Вас нет запроса.
Для HttpContext. Серверные службы можно использовать класс HttpServerUtility. Для Кэша можно использовать HttpRuntime. Кэш, как это было сказано выше. Поскольку запрос возражает, что можно передать данные от Запроса до потока, когда это создается. Вещи как Запрос. QueryString или Запрос. Форма... или что бы то ни было.
Если отдельный поток попытается получить доступ к тем объектам, то да они будут пустыми. Те объекты ограничены по объему на уровне потока. Если Вы хотите использовать их в новом потоке, необходимо будет передать их в метод/класс, где Вам нужны они.
Обычно ASP.NET не позволяет Вам порождать новые потоки... Вот сообщение на предмете.
Вот хорошая запись на поточная обработка в ASP.NET от MSDN.
Здесь есть реализация пула потоков , которая обеспечивает распространение HTTP-контекста вызывающего потока. Еще не пользовался, но планирую.