【发布时间】:2011-03-23 16:50:02
【问题描述】:
我们需要以大约 100ms 的间隔将一些数据写入一个文件,持续大约 30 分钟,然后等待一段时间,然后再次重复。我们的应用程序是 C#、.net 3.5 应用程序。每次写入的数据很小,不到1MB。现在我们从 Threadpool 中获取一个线程,并让该线程在每次收到新数据时写入文件(大约 100 毫秒间隔)。
我认为还有另一种方法可以做到这一点。我们可以在开始时从 Threadpool 中获取一个线程,并在整个写作会话期间保持该线程运行。当该线程完成写入时,让它等待下一个信号从共享位置获取更新的数据并再次写入。这种方式的缺点是我们需要同步共享数据对象,以确保如果写入速度较慢,它不会被新数据覆盖。那么它可能会减慢从另一个系统传输数据的通信速度。
我还没有时间编写代码测试它们。你认为值得测试它们吗?还是显然一种方法比另一种更好?
【问题讨论】:
标签: c# .net multithreading performance