Tools.CQ.LI 1.0.11
数据上传
var influx = new InfluxUploadService(new InfluxOptions
{
Enabled = true,
Url = "http://127.0.0.1:8086",
Database = "energy"
});
statistics.SetData(...);
// 一行上传
influx.Upload(statistics);
延时
// 使用示例
public class Program
{
public static void Main()
{
try
{
Console.WriteLine("开始精准延时测试...");
// 测试10ms延时
long start = PreciseDelay.GetTimestamp();
PreciseDelay.SpinWait(10);
long elapsed = PreciseDelay.GetTimestamp() - start;
Console.WriteLine($"请求10ms延时,实际延时: {elapsed}ms");
// 测试100ms延时
start = PreciseDelay.GetTimestamp();
PreciseDelay.BusyWait(100);
elapsed = PreciseDelay.GetTimestamp() - start;
Console.WriteLine($"请求100ms延时,实际延时: {elapsed}ms");
// 测试自适应延时
start = PreciseDelay.GetTimestamp();
PreciseDelay.AdaptiveDelay(50);
elapsed = PreciseDelay.GetTimestamp() - start;
Console.WriteLine($"请求50ms自适应延时,实际延时: {elapsed}ms");
// 测试带取消功能的延时
var cts = new CancellationTokenSource();
Task.Run(() =>
{
Thread.Sleep(20);
cts.Cancel();
});
start = PreciseDelay.GetTimestamp();
bool completed = PreciseDelay.SpinWaitWithCancellation(100, cts.Token);
elapsed = PreciseDelay.GetTimestamp() - start;
Console.WriteLine($"带取消的100ms延时: 完成={completed}, 实际时间={elapsed}ms");
}
catch (Exception ex)
{
Console.WriteLine($"错误: {ex.Message}");
}
}
}
// 精准延时 5ms
PrecisionDelay.DelayMilliseconds(5);
// 精准延时 1ms
PrecisionDelay.DelayMilliseconds(1);
// 多线程安全
Parallel.For(0, 4, _ =>
{
PrecisionDelay.DelayMilliseconds(10);
});
No packages depend on Tools.CQ.LI.
.NET Framework 4.8
- Newtonsoft.Json (>= 13.0.4)
- System.Text.Json (>= 10.0.3)