Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакет📦 CommunityToolkit.HighPerformance содержит вспомогательные и расширения для работы в высокопроизводительных сценариях. Этот пакет можно установить с помощью NuGet и поддерживает несколько целевых платформ.
- .NET Standard 2.0
- .NET 7
Это означает, что вы можете использовать его для всех приложений UWP или устаревших приложений .NET Framework, написанных в Unity, кроссплатформенных мобильных приложений с помощью Xamarin, до библиотек .NET Standard и современных приложений .NET 7 и более поздних версий. Область API почти идентична во всех случаях, и значительное внимание было уделено адаптации максимально возможного количества функций к более старым целевым платформам, таким как .NET Standard 2.0. За исключением некоторых незначительных различий, вы можете ожидать, что одни и те же API будут доступны во всех целевых платформах. Причина, по которой используется мультицелевая поддержка, заключается в том, чтобы пакет мог использовать все последние API в современных средах выполнения, когда это возможно, при этом предлагая большую часть своих функциональных возможностей всем целевым платформам.
Начало работы
Чтобы установить пакет из Visual Studio, выполните указанные ниже действия.
В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт "Управление пакетами NuGet". Найдите CommunityToolkit.HighPerformance и установите его.
Добавьте директиву using или Import для использования новых API:
using CommunityToolkit.HighPerformance;Imports CommunityToolkit.HighPerformanceПримеры кода доступны на других страницах документации для набора средств MVVM и в модульных тестах для проекта.
Когда следует использовать этот пакет?
Как показано в названии, пакет высокой производительности содержит набор API, которые в значительной степени сосредоточены на оптимизации. Все новые API были тщательно созданы для достижения оптимальной производительности при их использовании либо путем сокращения выделения памяти, микрооптимизации на уровне сборки, либо путем структурирования API таким образом, чтобы упростить написание ориентированного на производительность кода в целом.
Этот пакет использует такие API, как:
System.Span<T>System.Memory<T>System.Buffers.ArrayPool<T>System.Runtime.CompilerServices.UnsafeSystem.Runtime.InteropServices.MemoryMarshalSystem.Threading.Tasks.Parallel
Если вы уже знакомы с этими API или даже если вы только начинаете писать код высокой производительности в C# и хотите, чтобы набор хорошо проверенных вспомогательных средств, используемых в собственных проектах, ознакомьтесь с тем, что входит в этот пакет, чтобы узнать, как вы можете использовать его в собственных проектах!
С чего начать?
Ниже приведены некоторые API, которые можно сначала посмотреть, если вы уже использовали один из этих типов, упомянутых ранее:
-
Span2D<T>иMemory2D<T>, для абстракции, похожей наSpan<T>иMemory<T>для работы с 2D-памятью -
MemoryOwner<T>иSpanOwner<T>, если вы использовалиSystem.Buffers.ArrayPool<T>. -
StringPool, для типа, подобногоArrayPool<T>, для кэширования экземпляровstring -
ParallelHelper, если вы использовалиSystem.Threading.Tasks.Parallel.
Дополнительные ресурсы
Дополнительные примеры можно найти в модульных тестах.
.NET Community Toolkit