当前位置: 首页 > news >正文

如何给网站增加图标乙肝能治好吗

如何给网站增加图标,乙肝能治好吗,网站颜色正确搭配实例,有的网站打开的是html结尾的路径有的不是写在前面 在进一步了解Socket粘包分包的过程中,了解到了.NET 中的 System.IO.Pipelines,可以更优雅高效的解决这个问题;先跟随官方的示例做个初步的认识。 System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容…

写在前面

在进一步了解Socket粘包分包的过程中,了解到了.NET 中的 System.IO.Pipelines,可以更优雅高效的解决这个问题;先跟随官方的示例做个初步的认识。

System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容易。 该库的目标为适用于所有 .NET 实现的 .NET Standard。
System.IO.Pipelines 具有高性能的流数据分析功能,可以减少代码复杂性。

老规矩通过NuGet安装该类库

代码实现

using System.Buffers;
using System.IO.Pipelines;
using System.Text;class Program
{static async Task Main(){using var stream = File.OpenRead("lorem-ipsum.txt");var reader = PipeReader.Create(stream);var writer = PipeWriter.Create(Console.OpenStandardOutput(),new StreamPipeWriterOptions(leaveOpen: true));WriteUserCancellationPrompt();var processMessagesTask = ProcessMessagesAsync(reader, writer);var userCanceled = false;var cancelProcessingTask = Task.Run(() =>{while (char.ToUpperInvariant(Console.ReadKey().KeyChar) != 'C'){WriteUserCancellationPrompt();}userCanceled = true;// No exceptions thrownreader.CancelPendingRead();writer.CancelPendingFlush();});await Task.WhenAny(cancelProcessingTask, processMessagesTask);Console.WriteLine($"\n\nProcessing {(userCanceled ? "cancelled" : "completed")}.\n");}static void WriteUserCancellationPrompt() =>Console.WriteLine("Press 'C' to cancel processing...\n");static async Task ProcessMessagesAsync(PipeReader reader,PipeWriter writer){try{while (true){ReadResult readResult = await reader.ReadAsync();ReadOnlySequence<byte> buffer = readResult.Buffer;try{if (readResult.IsCanceled){break;}if (TryParseLines(ref buffer, out string message)){FlushResult flushResult =await WriteMessagesAsync(writer, message);if (flushResult.IsCanceled || flushResult.IsCompleted){break;}}if (readResult.IsCompleted){if (!buffer.IsEmpty){throw new InvalidDataException("Incomplete message.");}break;}}finally{reader.AdvanceTo(buffer.Start, buffer.End);}}}catch (Exception ex){Console.Error.WriteLine(ex);}finally{await reader.CompleteAsync();await writer.CompleteAsync();}}static bool TryParseLines(ref ReadOnlySequence<byte> buffer,out string message){SequencePosition? position;StringBuilder outputMessage = new();while (true){position = buffer.PositionOf((byte)'\n');if (!position.HasValue)break;outputMessage.Append(Encoding.ASCII.GetString(buffer.Slice(buffer.Start, position.Value))).AppendLine();buffer = buffer.Slice(buffer.GetPosition(1, position.Value));};message = outputMessage.ToString();return message.Length != 0;}static ValueTask<FlushResult> WriteMessagesAsync(PipeWriter writer,string message) =>writer.WriteAsync(Encoding.ASCII.GetBytes(message));
}

调用示例

总结

例子中用到的文本文件是一个以\n 换行符作为结尾的多行文本,微软官方示例没有提供,这个是自己建的测试文件,如果没有检测到\n会抛出异常。

 从运行的结果可以看到,从传入的流中识别以\n结尾,作为数据块的区分,利用这个特性定义数据报文的尾部,实现分包。

http://www.yayakq.cn/news/932302/

相关文章:

  • 营销型网站建设主要教学内容域名申请注册的步骤
  • 网站空间购买流程wordpress如何更改主页home
  • 建立个人网站做网站在线支付系统多少钱?
  • 方山建站报价网站建设第一品牌 网站设计
  • 成成品网站源码有限公司wordpress文件下载
  • 在本地做装修在那个网站好建筑设计院
  • 石家庄哪里做网站比较好深圳网站设计开发
  • 寻找长沙网站建设在线制作动画网站
  • 曾经做网站网站代理东莞赶集网最新招聘信息
  • layui响应式网站开发教程做网站是不是要有数据库
  • 大连地区建设网站张梅 合肥网站建设
  • 建筑模型网站开发网站怎样注册公司
  • 模仿网站 素材哪里来wordpress作者信息
  • 女子医院网站设计怎么做网站相对路径 .
  • 长沙手机网站公司潍坊网站维护
  • 网站建设方案 安全应用网站
  • 建筑招标网站个性网页设计
  • 中国做健身补剂的网站网贷代理平台
  • 网站添加白名单设计制造中国第一架飞机的人是
  • 网站设计建设一般多少钱浙江vs广东联盟
  • 主流门户网站wordpress修订版本删除
  • 塑模毕业设计代做网站自适应网站好吗
  • 哈尔滨多语言网站建设哈尔滨建设工程批前公示
  • 做调查表的网站建设银行wap网站
  • 遵义做网站推广动画制作软件有哪些?
  • 网站设计一般多长时间推荐常州网站建设公司
  • 给一个企业做网站网站建设营销公司
  • 梧州市建设局网站天津建设工程信息网咨询电话
  • 郑州网站APP品牌网站建设荐选蝌蚪
  • 青岛移动公司网站招聘网站开发程序员