public async Task HandleAsync(HubRegister message, CancellationToken cancellationToken) { if (message == null) { throw new NullReferenceException(nameof(message)); } PrimeNumbersPersist.Get(out var end, out var count, out var primeNo); var primeParam = new PrimeParam(); { primeParam.BeginNumber = end; primeParam.Count = count; primeParam.Primes = primeNo; } try { var result = await _rpcCaller.MethodCall(message.UserId, primeParam).ConfigureAwait(false); if (result?.Primes?.Length > 0 && (primeNo.LastOrDefault() < result.Primes.First())) { PrimeNumbersPersist.Increase(primeParam.Count, primeNo: result.Primes); } } catch (Exception e) { _logger.LogCritical(e, e.Message); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { await Task.Delay(1000, stoppingToken); // This demo doesn't contain connected users management. // Please change null below to correct user identifier and make sure that user is connected before this line is called, otherwise it will hang. MethodResponse response = await _rpcCaller.MethodCall(null, new MethodParams { }); } }