【发布时间】:2010-02-23 23:01:42
【问题描述】:
首先,我想明确一点,我不是指同时广播 TCP/IP 流,我想获取 c# 流的输出并将其发送到多个目的地。
例如,如果我有一个 FileStream(fs) 和一个 MemoryStream(ms) 和一个 FtpStream(ftps) 并做了类似的事情
...
SuperStreamWriter ss = new SuperStreamWriter(fs, ms, ftps);
ss.Write(helloWorld, 0, helloWorld.length);
}
class SuperStreamWriter : Stream
{
Stream[] _s;
public SuperStreamWriter(params Stream[] s)
{
_s = s;
}
public override void Write(byte[] buffer, int offset, int count)
{
foreach (Stream s in _s)
{
s.Write(buffer, offset, count);
}
}
//Other functions cut for example
}
Hello world 将被推送到我的所有三个流中。有谁知道任何可以为我提供与我在缓冲区上使用该 foreach 循环所描述的功能相似的功能?此外,如果 foreach 循环是我唯一/最好的选择,那么按原样线程化 foreach 循环的每次迭代是否安全?
【问题讨论】: