经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
c# 将一个长耗时任务改成task - GIS-MAN
来源:cnblogs  作者:GIS-MAN  时间:2018/12/5 10:00:52  对本文有异议
  1. public Task<ObservableCollection<WaterFallDataSource2>> InitalrenderSourceandBrush2(int width)
  2. {
  3. Stopwatch w = new Stopwatch();
  4. w.Start();
  5. points3.Clear();
  6. int wavelength = GlobalStorage.BigWaves.Length;
  7. int allRows = wavelength / width;
  8. w.Stop();
  9. Debug.WriteLine("w.ElapsedMilliseconds:" + w.ElapsedMilliseconds);
  10. Debug.WriteLine("allRows:" + allRows);
  11. if (allRows > 0)
  12. {
  13. Parallel.For(0, _pagesize, (lk) =>
  14. {
  15. ObservableCollection<DataPoint3> dataPoints = new ObservableCollection<DataPoint3>();
  16. for (byte j = 0; j < 150; j++)
  17. {
  18. for (short i = 0; i < width; i++)
  19. {
  20. DataPoint3 dataPoint = new DataPoint3() { VariableX = i, VariableY = j };
  21. dataPoint.Type = GetColorIndex2(GlobalStorage.BigWaves[lk * width + i][j]);
  22. dataPoints.Add(dataPoint);
  23. }
  24. }
  25. WaterFallDataSource2 waterFallDataSource = new WaterFallDataSource2();
  26. waterFallDataSource.DataPoints = dataPoints;
  27. waterFallDataSource.BrushInfo = brushes;
  28. waterFallDataSource.Index = lk;
  29. waterFallDataSource.Width = width;
  30. waterFallDataSource.StartTime = BeatWaveDataConversionExtension.WaveDotToDateTime(BeatInfoCache.BeatInfos.ElementAt(lk * width).R).ToString();
  31. points3.Add(waterFallDataSource);
  32. });
  33. return Task.FromResult<ObservableCollection<WaterFallDataSource2>>(points3.OrderBy(p => p.Index).ToObservableCollection<WaterFallDataSource2>());
  34. }
  35. else
  36. {
  37. ObservableCollection<DataPoint3> dataPoints = new ObservableCollection<DataPoint3>();
  38. WaterFallDataSource2 waterFallDataSource = new WaterFallDataSource2();
  39. for (byte j = 0; j < 150; j++)
  40. {
  41. for (short i = 0; i < wavelength; i++)
  42. {
  43. short value = GlobalStorage.BigWaves[i][j];
  44. DataPoint3 dataPoint = new DataPoint3() { VariableX = i, VariableY = j };
  45. dataPoint.Type = GetColorIndex2(value);
  46. dataPoints.Add(dataPoint);
  47. }
  48. }
  49. waterFallDataSource.DataPoints = dataPoints;
  50. waterFallDataSource.BrushInfo = brushes;
  51. waterFallDataSource.Index = 0;
  52. waterFallDataSource.Width = width;
  53. points3.Add(waterFallDataSource);
  54. return Task.FromResult<ObservableCollection<WaterFallDataSource2>>(points3);
  55. }
  56. }

调用 

 var reuslt = await _stTrendController.InitalrenderSourceandBrush2((int)firstrowgrid.ActualWidth - 27);

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号