using System.Threading.Tasks;
public static void Main()
var source = new CancellationTokenSource();
var token = source.Token;
var t = app.BrokerManager(token);
private void Log(string message)
Console.WriteLine("[Erro]: {0:yyyy-MM-dd hh:mm:ss} - {1}", DateTime.Now, message);
private async Task BrokerManager(CancellationToken cancellationToken)
var timeOutSource = new CancellationTokenSource();
timeOutSource.CancelAfter(1000);
var timeOutToken = timeOutSource.Token;
timeOutToken.Register(()=> { Log("Time out"); });
var source = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeOutToken);
var token = source.Token;
await BrokerHandle(token);
private async Task BrokerHandle(CancellationToken cancellationToken)
Console.WriteLine("Inicia Handler");
Console.WriteLine("Handler continua em execução");
Console.WriteLine("Finaliza Handler");