private void servicequeuecb(Image newFrame)
{
ms = new MemoryStream();
if (newFrame != null && !IsDisposed)
{
//get stream
ms.SetLength(0);
newFrame.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//broadcast frame
lock (_Clients)
foreach (var entry in _Clients)
{
ms.Position = 0;
try
{
entry.Value.Writer.Write(ms);
}
catch
{
//remove client that caused the exception
RemoveClient(entry.Key);
break; //because we changed the collection
}
}
//dispose frame
newFrame.Dispose();
}
}
//------------------------------------------------------------------------------------------------------------------------