HTMLAgilityPack 是一个开源的.NET库,旨在帮助开发人员处理和操作HTML文档。它提供了解析HTML文档、查询DOM元素以及修改HTML内容的功能。HTMLAgilityPack 基于XPath和LINQ查询,使得开发者能够以类似于操作XML文档的方式来操作HTML文档。这使得从复杂的HTML结构中提取所需数据变得轻而易举。
以下是一些常用的HTMLAgilityPack方法和属性,以及它们的用途:
RestSharp 是一个用于在 C# 中发送 HTTP 请求的开源库。它简化了与 RESTful API 进行交互的过程,使开发人员可以轻松地发送 GET、POST、PUT、DELETE 等 HTTP 请求,并处理响应数据。RestSharp 提供了一种简洁的方式来构建和发送 HTTP 请求,使得与服务器进行数据交换变得更加容易。
Quartz.net 是一个功能强大的用于调度任务的开源库,它允许你在指定的时间点或时间间隔触发任务。它被广泛用于 .NET 平台中的任务调度和定时任务管理。Quartz.net 提供了丰富的功能和灵活的调度选项,可以用于各种场景,如定时执行任务、后台作业、定时发送邮件等。

Quartz.net 的主要作用是在指定的时间点或时间间隔执行任务。它允许你创建定时任务,根据特定的触发条件来调度任务,以及管理任务的状态、暂停和恢复任务等。
C#中的IDGen是一个非常实用的C#实现的Twitter Snowflake算法的ID生成器,它能够为C#应用程序提供高效、全局唯一的ID生成功能,特别是在高并发场景下,这个功能尤为重要。
Twitter Snowflake算法是一种非常棒的方法,用于生成全世界独一无二的ID。它基于当前时间和机器时钟的微秒级别差异,可以保证在1亿年内生成的ID都是独一无二的。这个算法非常适合在高并发的场景下使用,因为它能够避免出现ID冲突,从而提高系统的性能和稳定性。
在C#中,IDGen就是一个基于Twitter Snowflake算法实现的ID生成器。它的主要作用是为C#应用程序生成全局唯一的ID,可以通过简单的调用来实现。与其他ID生成器相比,IDGen具有以下优点:
nuget 安装 IDGen库

在C#中,TaskScheduler是一种非常有用的功能,它允许您在指定的时间或间隔内执行任务。TaskScheduler是一个抽象类,它提供了一个通用的方法来计划和执行任务。您可以使用TaskScheduler来调度多个任务,并且在多线程环境中控制它们的执行。
写一个继承TaskScheduler的类
C#public class MyScheduler : TaskScheduler
{
protected override void QueueTask(Task task)
{
// 将任务排队到线程池中
ThreadPool.QueueUserWorkItem(_ => TryExecuteTask(task));
}
protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
{
// 如果当前线程是调度器的线程,则在当前线程内执行任务
if (taskWasPreviouslyQueued && Thread.CurrentThread.IsThreadPoolThread)
return TryExecuteTask(task);
return false;
}
protected override IEnumerable<Task> GetScheduledTasks()
{
// 此方法用于调度器的内部追踪,不要求实现
return Enumerable.Empty<Task>();
}
}