2025-09-27
C#
00

摘要


Span 是 C# 中引入的一个结构类型,用于提供对连续内存区域的类型安全访问。这个特性最初在 .NET Core 2.1 中引入,旨在优化性能,尤其是在处理数组、字符串和其他类型的缓冲区时。Span 可以看作是一个窗口,它允许开发者在不复制数据的情况下操作内存。

正文


Span 的特点

  • 类型安全:Span 是泛型的,确保只能访问指定类型的数据。
  • 内存效率:它允许在不创建新数组或字符串副本的情况下操作数据,减少了内存分配和垃圾回收的压力。
  • 栈分配:Span 是一个栈上的结构,它不会导致堆分配。
  • 切片操作:可以轻松地从现有的 Span 创建新的 Span,而不会发生数据复制。
  • 安全性:Span 不能跨越异步方法的边界,因为它可能指向非托管的内存,这样可以避免潜在的数据竞争和同步问题。

应用场景

  • 解析数据:在解析文件或网络数据流时,可以使用 Span 来避免不必要的内存复制。
  • 性能关键型应用:对于需要高性能内存操作的应用程序,如游戏、高频交易系统等。
  • 内存管理:在需要精细控制内存分配和回收的场景中,Span 提供了更大的灵活性。
  • 缓冲区操作:对于需要在缓冲区上执行复杂操作的场景,Span 提供了简单的API。
2025-09-27
C#
00

摘要


并行编程是现代软件开发中不可或缺的一部分,特别是在处理大量数据或进行计算密集型任务时。随着多核处理器的普及,C# 语言通过 .NET Framework 提供了强大的并行编程支持。本文将深入探讨 C# 中的并行编程,解释其概念、特点,并通过示例演示其用法。

正文


什么是 Parallel?

System.Threading.Tasks.Parallel 是 .NET Framework 中的一个类,它提供了一组静态方法,用于并行执行循环(Parallel.ForParallel.ForEach)和代码块(Parallel.Invoke)。这些方法可以自动分配任务到多个线程,利用多核处理器的能力,从而提高应用程序的性能。

Parallel 的特点

  • 简化并行代码的编写:Parallel 类提供了简单的 API,使得开发者能够轻松编写并行代码,而不需要深入理解线程管理和同步机制。
  • 动态负载均衡:Parallel 使用任务调度器来动态分配工作负载,可以根据系统的实际运行情况调整线程的使用,以达到最佳性能。
  • 易于集成和使用:Parallel 类与其他 .NET Framework 功能(如LINQ)紧密集成,可以轻松地在现有代码中实现并行操作。
  • 异常处理:Parallel 提供了集中的异常处理机制,可以捕获并行执行代码块中抛出的所有异常。
2025-09-27
C#
00

在现代软件开发领域,集成人工智能服务已成为增强应用程序智能化水平的关键策略。本文档旨在详尽阐述如何在 C# 环境下利用 Semantic Kernel 框架调用 Ollama,旨在帮助开发者迅速掌握并实现对话功能。我们将提供示例代码及详尽注释,以确保每一个步骤都具备高度的可理解性。

什么是 Semantic Kernel?

Semantic Kernel 是一个强大的框架,旨在简化与各种 AI 服务的集成。它支持多种 AI 模型,包括 OpenAI、Google、Mistral 等。通过 Semantic Kernel,开发者可以轻松创建聊天机器人、自动化代理等应用。

Ollama 简介

Ollama 是一个开源的 AI 模型管理工具,允许开发者在本地运行和调用各种 AI 模型。通过与 Semantic Kernel 的结合,开发者可以利用 Ollama 提供的模型来实现复杂的对话功能。

环境准备

在开始之前,请确保您的开发环境中已安装以下组件:

  • .NET SDK
  • Visual Studio 或其他 C# 开发工具
  • Ollama(请参考 Ollama 官方文档 进行安装)

安装必要的 NuGet 包

在您的项目中,您需要安装 Semantic Kernel 的相关 NuGet 包。可以通过 NuGet 包管理器控制台运行以下命令:

Bash
dotnet add package Microsoft.SemanticKernel.Connectors.Ollama --prerelease

image.png

2025-09-27
C#
00

背景介绍

Semantic Kernel 是微软推出的一个强大框架,允许开发者轻松创建具有高级功能的AI代理。本文将详细指导你如何使用C#创建一个交互式AI应用。

准备工作

安装必要的NuGet包

首先,你需要安装以下NuGet包:

Bash
dotnet add package Microsoft.SemanticKernel dotnet add package Microsoft.Extensions.Logging dotnet add package Microsoft.Extensions.Logging.Console

配置服务

在开始之前,确保你已经:

  • 我这用的是siliconflow,你也可以用第三方的,默认是OpenAI或Azure
  • 获取了模型部署ID
  • 准备好API密钥和终端点

代码实现

完整的控制台应用程序示例

2025-09-27
C#
00

DeepSeek 提供了强大的 API 接口,特别适合 .NET 开发者。本文将详细介绍如何在 C# 中使用 DeepSeek SDK,包括安装、配置和示例代码,帮助你快速上手,说白了就是httpclient打了个包。

🚀 DeepSeek SDK 特性

  • 模型列表:获取可用模型的列表
  • 聊天与聊天流:支持实时聊天功能
  • 补全与补全流:生成文本补全(测试版)
  • 用户余额:查询用户的 API 使用余额
  • 本地模型支持:支持本地模型调用
  • ASP.NET** Core 集成**:轻松集成到 ASP.NET Core 应用中

📦 安装 DeepSeek SDK

首先,你需要在 DeepSeek 官方网站 注册并申请 API Key。确保你的 .NET 版本为 .NET 8。

安装 NuGet 包

在你的项目中,使用以下命令安装 DeepSeek SDK:

Bash
dotnet add package Ater.DeepSeek.Core

image.png