RunAsync() public method

public RunAsync ( ) : Task
return Task
Beispiel #1
0
        public async Task <PortCheckResult[]> CheckAsync()
        {
            var peercast  = Application.PeerCast;
            var endpoints = peercast.OutputListeners
                            .Where(listener => (listener.GlobalOutputAccepts & OutputStreamType.Relay) != 0)
                            .Select(listener => listener.LocalEndPoint)
                            .GroupBy(ep => ep.Address);

            return(await Task.WhenAll(
                       endpoints.Select(group => {
                var target = TargetUriV4;
                switch (group.Key.AddressFamily)
                {
                case AddressFamily.InterNetworkV6:
                    target = TargetUriV6;
                    break;

                case AddressFamily.InterNetwork:
                default:
                    target = TargetUriV4;
                    break;
                }
                var checker = new PCPPortChecker(peercast.SessionID, target, group.Key, group.Select(ep => ep.Port));
                return checker.RunAsync();
            })
                       ).ConfigureAwait(false));
        }
 public async Task<PortCheckResult> CheckAsync()
 {
   var peercast = Application.PeerCast;
   var ports = peercast.OutputListeners
     .Where( listener => (listener.GlobalOutputAccepts & OutputStreamType.Relay)!=0)
     .Select(listener => listener.LocalEndPoint.Port);
   var checker = new PCPPortChecker(peercast.SessionID, TargetUri, ports);
   return await checker.RunAsync();
 }