-, async void , "--". async Task.
.Wait() . , , async Start() StartAsync() Start(), :
public void Start()
{
StartAsync().Wait();
}
public async Task StartAsync()
{
await Init();
while (!_canceller.Token.IsCancellationRequested)
{
await Poll();
}
}
, TopShelf Start() "Run"(); .. , , , . , async-wait, , , Wait() Start(), Task, StartAsync(), , Stop(), Task _canceller Stop() .Wait(), - :
private Task _serviceTask;
public void Start()
{
Init().Wait();
_serviceTask = ExecuteAsync();
}
public void Stop()
{
_canceller.Cancel();
_serviceTask.Wait();
}
public async Task ExecuteAsync()
{
while (!_canceller.Token.IsCancellationRequested)
{
await Poll();
}
}
, , , , , , , async Start() TopShelf, await . Stop() _canceller.Cancel(), async Start() , Poll().
, , Poll() , . , .
Edit
Init() Start(), .