public async Task Multiple_Capture_should_throw() { var manager = new ScreenCaptureManager(); var screen = manager.GetScreens().FirstOrDefault(); var capture1 = await manager.Capture(screen); Func <Task> act = () => manager.Capture(screen); act.Should().Throw <ScreenCaptureException>(); }
public async Task Capture_Bitmap() { var manager = new ScreenCaptureManager(); var screen = manager.GetScreens().FirstOrDefault(); using var capture = await manager.Capture(screen); using var bitmap = await capture.ToBitmap(); Run(bitmap, "capture"); }
public async Task Capture_benchmark() { var manager = new ScreenCaptureManager(); var screen = manager.GetScreens().FirstOrDefault(); var tcs = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var sw = Stopwatch.StartNew(); var count = 0; while (!tcs.IsCancellationRequested) { using var capture = await manager.Capture(screen, cancellationToken : tcs.Token); count++; } sw.Stop(); Console.WriteLine($"Average: {(int)(sw.Elapsed.TotalMilliseconds / count)} ms"); Console.WriteLine($"FPS: {count / sw.Elapsed.TotalSeconds}"); }
public async Task Capture_benchmark() { var manager = new ScreenCaptureManager(); var screen = manager.GetScreens().FirstOrDefault(); var tcs = new CancellationTokenSource(TimeSpan.FromSeconds(10)); using var capture = await manager.Capture(screen, cancellationToken : tcs.Token); var sw = Stopwatch.StartNew(); sw.Start(); var n = 1000; for (var i = 0; i < n; i++) { var bitmap = await capture.ToBitmap(); bitmap.Dispose(); } sw.Stop(); Console.WriteLine($"Average: {(int)(sw.Elapsed.TotalMicroseconds()/n)} us"); }