using FObjBase; using FObjSysTest.IService; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FObjSysTest.Server { public class ObjA : IObjAService { public DateTime Now { get; private set; } public double[] Numbers { get; set; } public event PropertyChangedEventHandler PropertyChanged; System.Threading.Timer timer; public ObjA() { Random random = new Random(); double[] numbers = new double[200000]; for (int i = 0; i < numbers.Count(); i++) numbers[i] = random.NextDouble() * 10; for (int i = 0; i < 20; i++) numbers[i] = double.NaN; Numbers = numbers; Now = DateTime.Now; timer = new System.Threading.Timer(Tick, this, 10000, 10000); } void Tick(object obj) { Now = DateTime.Now; } public void GetNumbers(double offset, AsyncCBHandler asyncDelegate, object asyncState) { var numbers = (double[])Numbers.Clone(); if (numbers != null) { for (int i = 0; i < numbers.Count(); i++) { if (!double.IsNaN(numbers[i]) && !double.IsNaN(offset)) numbers[i] += offset; else numbers[i] = double.NaN; } } Pack_CallGetNumbersReponse p = new Pack_CallGetNumbersReponse() { numbers = numbers }; asyncDelegate(asyncState, p); } public void Apply() { } } }