259
|
1 using System;
|
|
2 using System.Threading;
|
|
3 using System.Threading.Tasks;
|
|
4 using Implab.Components;
|
|
5 using Xunit;
|
|
6
|
|
7 namespace Implab.Test
|
|
8 {
|
|
9 class TimeLog : PollingComponent {
|
|
10 public TimeLog() : base(true) {
|
|
11 }
|
|
12
|
|
13 protected override Task Poll(CancellationToken ct) {
|
|
14 Console.WriteLine("Poll");
|
|
15 return Task.CompletedTask;
|
|
16 }
|
|
17 }
|
|
18
|
|
19 public class UnitTest1
|
|
20 {
|
|
21 [Fact]
|
|
22 public async Task Test1()
|
|
23 {
|
|
24
|
|
25 using(var tl = new TimeLog()) {
|
|
26 tl.StateChanged += (self, args) => Console.WriteLine("{0}", args.State);
|
|
27 tl.Delay = 1000;
|
|
28 tl.Interval = 500;
|
|
29
|
|
30
|
|
31 tl.Start(CancellationToken.None);
|
|
32 await tl.Completion;
|
|
33
|
|
34 await Task.Delay(2000);
|
|
35
|
|
36 tl.Stop(CancellationToken.None);
|
|
37 await tl.Completion;
|
|
38 await Task.Delay(3000);
|
|
39 }
|
|
40 }
|
|
41 }
|
|
42 }
|