zoukankan      html  css  js  c++  java
  • c# 将一个长耗时任务改成task

    public Task<ObservableCollection<WaterFallDataSource2>> InitalrenderSourceandBrush2(int width)
            {
                Stopwatch w = new Stopwatch();
                w.Start();
                points3.Clear();
                int wavelength = GlobalStorage.BigWaves.Length;
                int allRows = wavelength / width;
                w.Stop();
                Debug.WriteLine("w.ElapsedMilliseconds:" + w.ElapsedMilliseconds);
                Debug.WriteLine("allRows:" + allRows);
                if (allRows > 0)
                {
                    Parallel.For(0, _pagesize, (lk) =>
                    {
                        ObservableCollection<DataPoint3> dataPoints = new ObservableCollection<DataPoint3>();
                        for (byte j = 0; j < 150; j++)
                        {
                            for (short i = 0; i < width; i++)
                            {
                                DataPoint3 dataPoint = new DataPoint3() { VariableX = i, VariableY = j };
                                dataPoint.Type = GetColorIndex2(GlobalStorage.BigWaves[lk * width + i][j]);
                                dataPoints.Add(dataPoint);
                            }
                        }
                        WaterFallDataSource2 waterFallDataSource = new WaterFallDataSource2();
                        waterFallDataSource.DataPoints = dataPoints;
                        waterFallDataSource.BrushInfo = brushes;
                        waterFallDataSource.Index = lk;
                        waterFallDataSource.Width = width;
                        waterFallDataSource.StartTime = BeatWaveDataConversionExtension.WaveDotToDateTime(BeatInfoCache.BeatInfos.ElementAt(lk * width).R).ToString();
                        points3.Add(waterFallDataSource);
                    });
                    return Task.FromResult<ObservableCollection<WaterFallDataSource2>>(points3.OrderBy(p => p.Index).ToObservableCollection<WaterFallDataSource2>());
                }
                else
                {
                    ObservableCollection<DataPoint3> dataPoints = new ObservableCollection<DataPoint3>();
                    WaterFallDataSource2 waterFallDataSource = new WaterFallDataSource2();
                    for (byte j = 0; j < 150; j++)
                    {
                        for (short i = 0; i < wavelength; i++)
                        {
                            short value = GlobalStorage.BigWaves[i][j];
                            DataPoint3 dataPoint = new DataPoint3() { VariableX = i, VariableY = j };
                            dataPoint.Type = GetColorIndex2(value);
                            dataPoints.Add(dataPoint);
                        }
                    }
                    waterFallDataSource.DataPoints = dataPoints;
                    waterFallDataSource.BrushInfo = brushes;
                    waterFallDataSource.Index = 0;
                    waterFallDataSource.Width = width;
                    points3.Add(waterFallDataSource);
                    return Task.FromResult<ObservableCollection<WaterFallDataSource2>>(points3);
                }
            }
    

    调用 

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

  • 相关阅读:
    贪吃蛇 666
    安装postgresql
    linux CentOS6.5 yum安装mysql 5.6
    centos--git搭建之Gogs安装
    查看mysql 默认端口号和修改端口号
    centos之mysql安装配置使用
    流媒体服务器SRS部署
    vue用webpack打包时引入es2015插件
    log4j2的log输出到tomcat/logs目录下及使用(转)
    log4j2的配置文件log4j2.xml笔记
  • 原文地址:https://www.cnblogs.com/gisbeginner/p/10064901.html
Copyright © 2011-2022 走看看