-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPerformanceTask.cs
57 lines (43 loc) · 1.59 KB
/
PerformanceTask.cs
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
//---------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
//---------------------------------------------------------------------------------
namespace ThroughputTest
{
using System.Threading;
using System.Threading.Tasks;
abstract class PerformanceTask
{
protected PerformanceTask(Settings settings, Metrics metrics, CancellationToken cancellationToken)
{
this.Settings = settings;
this.Metrics = metrics;
this.CancellationToken = cancellationToken;
}
protected Settings Settings { get; private set; }
protected string ConnectionString { get; private set; }
protected Metrics Metrics { get; private set; }
protected CancellationToken CancellationToken { get; private set; }
public void Close()
{
this.CloseAsync().Fork();
}
public async Task OpenAsync()
{
await OnOpenAsync().ConfigureAwait(false);
}
public Task StartAsync()
{
return OnStartAsync();
}
public Task CloseAsync()
{
return Task.CompletedTask;
}
protected abstract Task OnOpenAsync();
protected abstract Task OnStartAsync();
}
}