Ejemplo n.º 1
0
        private Task StartBitmapWriterTask()
        {
            return(Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    KeyValuePair <int, byte[]> res;

                    try
                    {
                        res = imageQueue.Take();
                    }
                    catch (InvalidOperationException)
                    {
                        break;
                    }

                    foreach (var report in OutputReportSplitter.Split(res.Value, Buffer, HardwareInfo.ReportSize, HardwareInfo.HeaderSize, res.Key, HardwareInfo.PrepareDataForTransmittion))
                    {
                        DeckHid.WriteReport(report);
                    }
                }
            },
                                         CancellationToken.None,
                                         TaskCreationOptions.LongRunning,
                                         TaskScheduler.Default
                                         ));
        }
Ejemplo n.º 2
0
        private Task StartBitmapWriterTask()
        {
            return(Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    try
                    {
                        var res = imageQueue.Take();
                        reportGenerator.Initialize(res.Value, res.Key);
                    }
                    catch (InvalidOperationException)
                    {
                        break;
                    }

                    while (reportGenerator.HasNextReport)
                    {
                        deckHid.WriteReport(reportGenerator.GetNextReport());
                    }
                }
            }, TaskCreationOptions.LongRunning));
        }