Zunächst möchte ich klarstellen, dass ich nicht auf das Simulcasten eines TCP/IP-Streams verweise, sondern darauf, den Ausgang eines C#-Streams an mehrere Zielorte zu senden.
Zum Beispiel, wenn ich einen FileStream(fs) und einen MemoryStream(ms) und einen FtpStream(ftps) hätte und etwas wie
...
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);
}
}
//Andere Funktionen aus Platzgründen weggeschnitten
}
Hello world würde an alle drei meiner Streams gesendet werden. Weiß jemand von etwas, das mir eine ähnliche Funktionalität wie die von mir beschriebene bieten wird, ohne diese foreach-Schleife auf dem Puffer zu verwenden? Auch wenn die foreach-Schleife meine einzige/beste Option ist, wäre es sicher, jede Iteration der foreach-Schleife so zu threaden, wie sie ist?