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}");
        }
Esempio n. 4
0
        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");
        }