
FileStream
XML注入风险可通过安全配置XmlReader/XDocument、禁用DTD与外部实体、避免XPath拼接及不执行用户数据来规避。关键在于不将不可信内容当代码执行,而非法防“XML注入”本身。
静态变量非线程安全,因所有线程共享同一内存;需用Interlocked、Concurrent集合或显式锁保护,避免竞态、内存泄漏与资源泄露。
用户态线程调度不触发内核态切换;C#中Task、async/await及ThreadPool的多数操作在CLR用户态完成,仅I/O、锁争用、Thread.Sleep等显式系统调用才引发内核切换。
XmlReader和XmlWriter是.NET中面向流式、只进、低内存的XML处理API,适合大文件或高性能场景;不构建DOM,比XmlDocument更快更省内存;XmlReader逐节点只读解析...
FileStream异步API默认不加速,因默认使用线程池模拟异步而非真正的重叠I/O;必须显式设置useAsync:true且文件系统支持(如NTFS)才能启用底层异步。
绝大多数新项目应优先使用Task而非Thread;仅在需操作系统级线程控制(如STA线程、自定义调度)时才用Thread,且须避免用Thread处理I/O或未捕获异常。
IOCP是Windows底层异步I/O通知机制,不创建线程,仅投递完成包;.NET异步I/O在Windows上默认绑定IOCP以避免阻塞线程,但ThreadPool并非基于IOCP实现,二者职责分离、...
同步I/O在Windows中通过阻塞当前线程实现,需FILE_FLAG_OVERLAPPED才能启用IOCP异步机制;FileStream默认不启用IOCP(.NET5+已改),小文件同步读反而增加开...
ZipArchive是.NET原生轻量ZIP处理方案,支持压缩、解压及流式读取;需注意目录创建、路径安全、ZIP64、密码保护、空文件夹模拟及中文编码等细节。
应使用TaskCreationOptions.LongRunning避免线程池饥饿,它创建独立前台线程而非占用线程池;须用Task.Factory.StartNew()或newTask()+Start...