2016-02-08 4 views
0

Я пытаюсь проверить ASP API-контроллер, который, в свою очередь, вызывает DLL, которая использует MathNet.Numerics.LinearAlgebra. Я первый звонокПочему MathNet.Numerics.Control.UseManaged требует Cuda?

MathNet.Numerics.Control.UseManaged(); 

Однако этот вызов завершается с ошибкой

Исключение брошенным: 'System.NotSupportedException' в MathNet.Numerics.dll

Дополнительная информация: Cuda Native Provider не найден ,

vsscreenshot

Почему Cuda требуется, когда я явно говорил Mathnet в эксплуатацию удалось не родной?

ответ

1

На самом деле это не подводит, исключение обрабатывается внутренне. Вы можете просто продолжить отладку.

Исключение на самом деле не вызвано вызовом UseManaged, но внутренне при статическом построении класса Control, при первом обращении к нему и инициализации поставщиков по умолчанию (в том числе исследование того, доступен ли какой-либо из известных родных поставщиков). Конечно, Cuda не требуется при использовании управляемых провайдеров.

Это действительно небольшая проблема юзабилити при отладке с включенным «break on all exceptions». Возможно, мы сможем избежать исключения с небольшим рефакторингом. Может быть, нам стоит открыть проблему GitHub, чтобы отслеживать это?

+0

Спасибо Кристоф, [сделано] (https://github.com/mathnet/mathnet-numerics/issues/370). – dumbledad

+0

Добавлена ​​проблема https://github.com/mathnet/mathnet-numerics-native/issues/18 –