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 )); }
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)); }