1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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()
{
}
}
}