Почему я получаю черный экран при использовании следующего кода для создания снимка экрана каждые 20 миллисекунд и передачи его одноранговому узлу по зашифрованному соединению? (Я знаю, что 20 миллисекунд немного быстрее частоты обновления, но, похоже, это не проблема. Процессор и сеть могут не отставать от частоты обновления, проблема в том, что растровое изображение выглядит полностью черным РЕДАКТИРОВАТЬ: Теперь я знаю, что это какая-то странная проблема с сетью, но теперь изображение выглядит размытым, как будто это плохой аналоговый сигнал. Я приложил к этой записи скриншот программы. http://imgur.com/y9rWb.png
P2PStream thestream = (P2PStream)sender;
Bitmap mymap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics screenshotGFX = Graphics.FromImage(mymap);
screenshotGFX.CopyFromScreen(new Point(),new Point(),new Size(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height));
Stream encryptedStream = networkLogic.getCryptoStream(thestream, true);
while (true)
{
try
{
screenshotGFX.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
mymap.Save(encryptedStream,System.Drawing.Imaging.ImageFormat.Png);
}
catch (Exception)
{
MessageBox.Show("A client has disconnected");
break;
}
System.Threading.Thread.Sleep(20);
}