【发布时间】:2014-01-17 10:19:17
【问题描述】:
我有一个相关但不同的问题的场景。所以它可能看起来像一个重复的帖子,但它不是
我正在开发一个类,该类使用最终在 UI 线程上创建的 TcpClient 来读取和写入数据。当 TcpClient 创建时,设计是连接到服务器并立即创建 BinaryReader 和 BinaryWriter。
BinaryReader 用于执行阻塞读取的专用线程。当数据到达时,我生成一个事件并传递数据进行处理。冲洗并重复。
BinaryWriter 在数据到达另一个线程时使用。现在它恰好是 UI 线程,但它不一定是。已知的一件事是它与阻塞读取器正在运行的线程不同。
因为我预先创建了二进制处理程序,我发现确保它们被正确处理是很棘手的。似乎使用 using 语句来封装他们正在使用的生活会容易得多。
但是我知道创建一个可以重复使用的对象是一种浪费,并且会给系统增加负担。尤其是 BinaryWriter,它会在一次使用后离开其范围。
这些类和IDisposable 对象的最佳实践是什么?
【问题讨论】:
标签: c# stream tcpclient idisposable