Как сделать метод Run() из SendStream.cs асинхронным или запуск sendStream.Run();
в Main.cs асинхронным? Цикл в методе должен работать бесконечно, return и break не предлагать.
Код: Main.cs
public MainWindow()
{
InitializeComponent();
SendStream sendStream = new SendStream();
sendStream.Run();
}
Код: SendStream.cs
public class SendStream
{
private IPEndPoint ipEndPoint;
private UdpClient _udpClient;
private int width;
private int height;
private const UInt16 UdpSize = 65507;
private const UInt16 ControlBlockSize = 5;
private Random random = new Random();
private byte lastA = 0;
private byte lastB = 0;
private float FPS = 60;
public SendStream()
{
using (StreamReader streamReader = new StreamReader("ip.txt"))
{
string ip = streamReader.ReadLine();
int port = Convert.ToInt32(streamReader.ReadLine());
if (ip != null) ipEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);
}
width = Screen.PrimaryScreen.Bounds.Width;
height = Screen.PrimaryScreen.Bounds.Height;
}
public void Run()
{
_udpClient = new UdpClient();
Bitmap backGround = new Bitmap(width, height);
Graphics graphics = Graphics.FromImage(backGround);
while (true)
{
System.Threading.Thread.Sleep((int) (1000 / FPS));
graphics.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(width, height));
byte[] bytes = ConvertToByte(backGround);
List<byte[]> data = Package(bytes);
foreach (var block in data)
{
_udpClient.Send(block, block.Length, ipEndPoint);
}
}
}
...
}
Достаточно было сделать это))
Огромное спасибо @EvgeniyZ
Main.cs
SendStream sendStream = new SendStream();
await sendStream.Run();
SendStream.cs
public async Task Run()
{
_udpClient = new UdpClient();
Bitmap backGround = new Bitmap(width, height);
Graphics graphics = Graphics.FromImage(backGround);
while (true)
{
await Task.Delay((int) (1000 / FPS)); //System.Threading.Thread.Sleep((int) (1000 / FPS));
graphics.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(width, height));
byte[] bytes = ConvertToByte(backGround);
List<byte[]> data = Package(bytes);
foreach (var block in data)
{
await _udpClient.SendAsync(block, block.Length, ipEndPoint);
}
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Каким образом можно проверить что визуальный объект виден пользователю, и его необходимо отрисовать, в противном случае ничего не делать...
Как можно остановить get запрос на открытие веб-сайта, если этот сайт находится в моем black списке веб-сайтов? Используя прокси Titaniumweb