public static void ReceiveData(string key, object value) { if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase)) { var ledData = value as DataPoint; if (ledData == null) { System.Diagnostics.Debug.WriteLine("监控数据格式错误!!"); return; } if (_strategyTable == null) { return; } if (_strategyTable.Keys == null || !_strategyTable.Keys.Contains(ledData.Key)) { return; } List<DataPoint> temperatureDataList = new List<DataPoint>(); List<DataPoint> brightnessDataList = new List<DataPoint>(); List<DataPoint> smokeDataList = new List<DataPoint>(); //if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase)) //{ List<DataPoint> dataPointCollection = new List<DataPoint>(); if (typeof(List<DataPoint>) == ledData.Value.GetType()) { dataPointCollection = ledData.Value as List<DataPoint>; } else if (typeof(DataPoint) == ledData.Value.GetType()) { dataPointCollection = new List<DataPoint>() { ledData.Value as DataPoint }; } temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key)); brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key)); smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key)); var temperatureTaskArgObj = new TaskArgPackage { DataPoints = temperatureDataList, Key = ledData.Key }; Task temperatureStrategyTask = Task.Factory.StartNew((obj) => { var taskArgObj = (TaskArgPackage)obj; TemperatrueStrategyTask(taskArgObj.Key, taskArgObj.DataPoints); }, temperatureTaskArgObj); var smokeTaskArgObj = new TaskArgPackage { DataPoints = smokeDataList, Key = ledData.Key }; Task smokeStrategyTask = Task.Factory.StartNew((obj) => { var taskArgObj = (TaskArgPackage)obj; SmokeStrategyTask(taskArgObj.Key, taskArgObj.DataPoints); }, smokeTaskArgObj); //lock (_syncObj) //{ // temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key)); // brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key)); // smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key)); // TemperatrueStrategyTask(key, temperatureDataList); // BrightnessStrategyTask(key, brightnessDataList); // SmokeStrategyTask(key, smokeDataList); //} } //} }
public static void ReceiveData(string key, object value) { if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase)) { var ledData = value as DataPoint; if (ledData == null) { System.Diagnostics.Debug.WriteLine("监控数据格式错误!!"); return; } if (_strategyTable == null) { return; } if (_strategyTable.Keys == null || !_strategyTable.Keys.Contains(ledData.Key)) { return; } List <DataPoint> temperatureDataList = new List <DataPoint>(); List <DataPoint> brightnessDataList = new List <DataPoint>(); List <DataPoint> smokeDataList = new List <DataPoint>(); //if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase)) //{ List <DataPoint> dataPointCollection = new List <DataPoint>(); if (typeof(List <DataPoint>) == ledData.Value.GetType()) { dataPointCollection = ledData.Value as List <DataPoint>; } else if (typeof(DataPoint) == ledData.Value.GetType()) { dataPointCollection = new List <DataPoint>() { ledData.Value as DataPoint }; } temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key)); brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key)); smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key)); var temperatureTaskArgObj = new TaskArgPackage { DataPoints = temperatureDataList, Key = ledData.Key }; Task temperatureStrategyTask = Task.Factory.StartNew((obj) => { var taskArgObj = (TaskArgPackage)obj; TemperatrueStrategyTask(taskArgObj.Key, taskArgObj.DataPoints); }, temperatureTaskArgObj); var smokeTaskArgObj = new TaskArgPackage { DataPoints = smokeDataList, Key = ledData.Key }; Task smokeStrategyTask = Task.Factory.StartNew((obj) => { var taskArgObj = (TaskArgPackage)obj; SmokeStrategyTask(taskArgObj.Key, taskArgObj.DataPoints); }, smokeTaskArgObj); //lock (_syncObj) //{ // temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key)); // brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key)); // smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key)); // TemperatrueStrategyTask(key, temperatureDataList); // BrightnessStrategyTask(key, brightnessDataList); // SmokeStrategyTask(key, smokeDataList); //} } //} }