Лучший способ Представить HTML в приложении WinForms? [закрытый]

Время выполнения CUDA позволяет скомпилировать и связать Ваши ядра CUDA в исполняемые файлы. Это означает, что Вы не должны распределять файлы определения объема со своим приложением или соглашение с загрузкой их через API драйвера. Как Вы отметили, обычно легче использовать.

Напротив, API драйвера более тверд к программе, но обеспечил больше управления тем, как CUDA используется. Программист должен непосредственно иметь дело с инициализацией, загрузкой модуля, и т.д.

, По-видимому, более подробная информация об устройстве может быть запрошена через API драйвера, чем через API во время выполнения. Например, свободная память, доступная на устройстве, может быть запрошена только через API драйвера.

От Руководства Программиста CUDA:

Это состоит из двух API:

  • низкоуровневый API А назвал API драйвера CUDA,
  • А API более высокого уровня названный API во время выполнения CUDA, который реализован сверху API драйвера CUDA.

Эти API являются взаимоисключающими: приложение должно использовать или один или другой.

время выполнения CUDA упрощает управление кодом устройства путем обеспечения неявной инициализации, управления контекстом и управления модулем. Код хоста C, сгенерированный nvcc, основан на времени выполнения CUDA (см. Раздел 4.2.5), таким образом, приложения, которые связываются с этим кодом, должны использовать API во время выполнения CUDA.

Напротив, API драйвера CUDA требует большего количества кода, более тверд к программе и отладке, но предлагает лучший уровень управления и независим от языка, так как это только имеет дело с определением объема объектов (см. Раздел 4.2.5). В частности, более трудно настроить и запустить ядра с помощью API драйвера CUDA, так как конфигурация выполнения и параметры ядра должны быть определены с вызовами явной функции вместо синтаксиса конфигурации выполнения, описанного в Разделе 4.2.3. Кроме того, эмуляция устройства (см. Раздел 4.5.2.9) не работает с API драйвера CUDA.

между API нет никакого значимого различия в производительности. Как Ваши ядра используют память и как они размечаются на GPU (в деформациях, и блоки) будет иметь намного более явный эффект.

16
задан I. J. Kennedy 30 October 2013 в 14:11
поделиться

4 ответа

Осталась со встроенным WebBrowser. HtmlRenderer из другого ответа великолепен, но выводит изображение.

3
ответ дан 30 November 2019 в 22:31
поделиться

Информацию об управляемом рендерере HTML см. В HtmlRenderer на GitHub.

15
ответ дан 30 November 2019 в 22:31
поделиться

Конечно, тысячи. То же верно и для любой разработки программного обеспечения. К сожалению, самый простой способ перечислить их - записать их на листе бумаги, ожидая, пока дружелюбная душа освободит вас от той, в которую вы только что упали.

Однако:

  1. Не пытайтесь изобретать заново. колесо. API iPhone очень полный - вам просто нужно ИСКАТЬ, что вам нужно. Вещи НЕ всегда реализуются так, как вы ожидаете. Внимательно прочтите руководства. Посмотрите учебные пособия и проанализируйте, как они работают. (Попробуйте изменить строчку здесь или там в учебнике, чтобы увидеть, в чем разница.) Единственная самая большая ошибка, которую я сделал за год разработки iPhone, - это недостаточно стараться найти способ iPhone из что-то делает.

  2. Не игнорируйте управление памятью; овладевайте им рано и часто. Используйте инструменты Object Allocation и Leaks в Instruments, чтобы часто проверять утечки памяти. Я бы рекомендовал проверять после завершения каждой функции или просмотра; чаще, чем это, если вы продолжаете находить ошибки. В конце концов, вы можете понять это настолько хорошо, что можете перестать это делать.

  3. Не используйте просто настройки сборки по умолчанию. Поиграйте с ними, чтобы понять, что они делают. Разберитесь в сертификации и распределении. БЫСТРО ВСТУПИТЕ В ПРОГРАММУ РАЗРАБОТЧИКА - на прохождение этого конвейера может потребоваться время. [И когда вы получите уведомление о том, что вам необходимо продлить подписку, немедленно включите его - с этим процессом возникли проблемы. ]

  4. Не забудьте внимательно прочитать Руководство по человеческому интерфейсу (HIG). Если они говорят что-то не делать - НЕ ДЕЛАЙТЕ ЭТОГО. Apple будет отклонять приложения, злоупотребляющие своей иконографией.

  5. Не скупитесь на маркетинг. Да, App Store представляет ваше приложение миллионам людей ... Теоретически. Но шансы попасть на первую полосу невелики. В App Store есть много отличных приложений, которые мало продаются, потому что о них никто не знает.

  6. Не останавливайтесь на достигнутом. Если появится новая технология, узнайте, облегчает ли она вашу работу; если это так, найдите время, чтобы изучить это. Личный пример: я только сейчас пытаюсь переключиться с управления данными на основе SQLite на Core Data, потому что я очень спешил, когда начинал свой последний проект; теперь мне жаль, что я не замедлился и подумал об этом.

  7. Не вдавайтесь в свое дизайнерское мышление (например): «Как мне реализовать свою концепцию с табличным представлением?» Это' Верно, что представления таблиц естественны для многих информационных и служебных приложений, но их нельзя ограничивать. Вместо этого подумайте о том, что пользователи захотят делать, как вы можете упростить им задачу - собрать вещи, которые будут использоваться вместе, и т. Д. Если вы никогда не изучали концепцию вариантов использования, прочтите их.

  8. Не бойтесь создавать составные представления. Многие из вопросов, которые я видел здесь, в Stack Overflow, связаны с размещением панели инструментов в верхней части таблицы или с изображением на фоне текстового поля. Я понимаю желание делать что-то простым способом, и, как я утверждаю в пункте 1 выше, если есть простой способ, используйте его. Но во многих случаях решение состоит в том, чтобы просто наложить несколько слоев с соответствующим размещением и прозрачностью. Большинство движков просмотра могут работать автономно по API

    , например, NHaml и nvelocity могут использоваться отдельно

    http://code.google.com/p/nhaml/

    http: // www.castleproject.org/others/nvelocity/index.html

    И я предполагаю, что Spark тоже может быть

    http://dev.dejardin.org/

0
ответ дан 30 November 2019 в 22:31
поделиться

Я разработал то, о чем вы просили: « полностью управляемый модуль визуализации HTML », который « будет отображать относительно простой HTML на C # ». Он поддерживает подмножество CSS, которое вы можете « указать во встроенной таблице стилей CSS (внутри элемента head) ».

Подробнее см. HTML-элемент управления ModelText .

0
ответ дан 30 November 2019 в 22:31
поделиться
Другие вопросы по тегам:

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