private void OnVideoPlayerError(object sender, PlayerErrorEventArgs e) { SetBusy(false); model.IsPlaying = false; nativePlayer.Stop(); ErrorOcurred?.Invoke(this, e.Message); }
private async void MainLoop(Stream stream, CancellationToken token) { while (token.IsCancellationRequested == false) { try { await Task.Delay(TimeSpan.FromSeconds(0.1)); while (messagesToSend.TryDequeue(out IAdminMessage msg)) { Packet packet = this.adminPacketService.CreatePacket(msg); await stream.WriteAsync(packet.Buffer, 0, packet.Size).WaitMax(TimeSpan.FromSeconds(2)); } } catch (Exception e) { cancellationTokenSource.Cancel(); ErrorOcurred?.Invoke(this, e); State = WorkState.Errored; } } }
private async void MainLoop(Stream stream, CancellationToken token) { while (token.IsCancellationRequested == false) { try { Packet packet = await WaitForPacket(stream, token); IAdminMessage message = adminPacketService.ReadPacket(packet); if (!token.IsCancellationRequested) { receivedMessages.Enqueue(message); } } catch (Exception e) { cancellationTokenSource.Cancel(); ErrorOcurred?.Invoke(this, e); State = WorkState.Errored; } } }