Exemple #1
0
        // This method is called after all Web servers respond,
        // Cancel is called, or the timeout occurs
        private void AllDone(CoordinationStatus result)
        {
            switch (result)
            {
            case CoordinationStatus.Cancel:
                Console.WriteLine("The operation was canceled");
                break;

            case CoordinationStatus.Timeout:
                Console.WriteLine("The operation timed-out");
                break;

            case CoordinationStatus.AllDone:
                Console.WriteLine("Here are the results from all the Web servers");
                for (Int32 n = 0; n < m_requests.Length; n++)
                {
                    WebResponse response = m_results[n] as WebResponse;
                    if (response != null)
                    {
                        Console.WriteLine("{0} returned {1} bytes.",
                                          response.ResponseUri, response.ContentLength);
                    }
                    else
                    {
                        Exception e = m_results[n] as Exception;
                        if (e != null)
                        {
                            Console.WriteLine("{0} failed due to {1}.",
                                              m_requests[n].RequestUri, e.Message);
                        }
                    }
                }
                break;
            }
        }
Exemple #2
0
        public void AllDone(CoordinationStatus status)
        {
            switch (status)
            {
            case CoordinationStatus.Cancel:
                Console.WriteLine("Operation canceled");
                break;

            case CoordinationStatus.TimeOut:
                Console.WriteLine("Operation time-out");
                break;

            case CoordinationStatus.AllDone:
                Console.WriteLine("Operation completed");
                foreach (var server in m_servers)
                {
                    Console.WriteLine("{0}", server.Key);
                    var result = server.Value;
                    if (result is Exception)
                    {
                        Console.WriteLine("failed due to {0}", result.GetType().Name);
                    }
                    else
                    {
                        Console.WriteLine("retruned {0:N0} bytes", result);
                    }
                }
                break;
            }
        }
Exemple #3
0
            // This method is called after all Web servers respond,
            // Cancel is called, or the timeout occurs
            private void AllDone(CoordinationStatus status)
            {
                switch (status)
                {
                case CoordinationStatus.Cancel:
                    Console.WriteLine("Operation canceled.");
                    break;

                case CoordinationStatus.Timeout:
                    Console.WriteLine("Operation timed-out.");
                    break;

                case CoordinationStatus.AllDone:
                    Console.WriteLine("Operation completed; results below:");
                    foreach (var server in _servers)
                    {
                        Console.Write("{0} ", server.Key);
                        Object result = server.Value;
                        if (result is Exception)
                        {
                            Console.WriteLine("failed due to {0}.", result.GetType().Name);
                        }
                        else
                        {
                            Console.WriteLine("returned {0:N0} bytes.", result);
                        }
                    }
                    break;
                }
            }
Exemple #4
0
        private void AllDone(CoordinationStatus coordinationStatus)
        {
            switch (coordinationStatus)
            {
            case CoordinationStatus.Cancel:
                Console.WriteLine("Operation was cancelled");
                return;

            case CoordinationStatus.Timeout:
                Console.WriteLine("Operation has timed out");
                return;
            }

            Console.WriteLine("Operation completed, results below:");
            foreach (var mServer in m_servers)
            {
                Console.Write($"{mServer.Key} ");
                var result = mServer.Value;
                if (result is Exception)
                {
                    Console.WriteLine($"failed due to {result.GetType().Name}.");
                    continue;
                }

                Console.WriteLine($"returned {result:D} bytes.");
            }
        }
Exemple #5
0
 private void ReportStatus(CoordinationStatus status)
 {//如果报告从未报告过,就报告它,否则忽略它
     if (Interlocked.Exchange(ref _statusReported, 1) == 0)
     {
         _callback(status);
     }
 }
Exemple #6
0
 private void ReportStatus(CoordinationStatus status)
 {
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         m_callback(status);
     }
 }
 private void ReportStatus(CoordinationStatus status)
 {
     //如果状态从未报告过,就报告它;否则忽略它
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         m_callback(status);
     }
 }
Exemple #8
0
 public void ReportStatus(CoordinationStatus status)
 {
     //如果状态从未报告过就报告,已报告过就忽略
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         m_callback(status);
     }
 }
 private void ReportStatus(CoordinationStatus status)
 {
     // 如果状态未报告过,就报告,否则忽略
     if (Interlocked.Exchange(ref statusReported, 1) == 0)
     {
         callback(status);
     }
 }
 private void ReportStatus(CoordinationStatus allDone)
 {
     // Note: Если состояние ни разу не передавалось, передайте его, в противном случае игнорируйте его
     if (Interlocked.Exchange(ref _statusReported, 1) == 0)
     {
         _callback(allDone);
     }
 }
Exemple #11
0
 private void ReportStatus(CoordinationStatus status)
 {
     // If status has never been reported, report it; else ignore it
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         m_callback(status);
     }
 }
 private void ReportStatus(CoordinationStatus status)
 {
     // Если состояние ни разу не передавалось, передать его;
     // в противном случае оно игнорируется
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         m_callback(status);
     }
 }
Exemple #13
0
 private void ReportStatus(CoordinationStatus status)
 {     // Если состояние ни разу не передавалось, передать его; 
     // в противном случае оно игнорируется  
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
     {
         _completionSource.SetResult(status);
         m_callback(status);
     }
 }
Exemple #14
0
 private void AllDown(CoordinationStatus status)
 {
     // 此处没有取消和超时状态,直接完成
     if (status == CoordinationStatus.AllDone)
     {
         Interlocked.Exchange(ref ConnectStatus, 0);
         LogNet?.WriteDebug("All bytes read complete.");
         OnReceivedData?.Invoke(BytesResult.ToArray());
     }
 }
Exemple #15
0
        private void ReportStatus(CoordinationStatus status)
        {
            var oldValue = Interlocked.Exchange(ref m_statusReported, 1);

            if (oldValue == 0)
            {
                // Interlocked как арбитр:
                // гарантируется, что метод обратного вызова сработает только один раз,
                // т.к. только один поток переведет m_statusReported из 0 в 1
                m_callBack(status);
            }
        }
        private void ReportStatus(CoordinationStatus status)
        {
            if (m_timer != null)
            {  
                // If timer is still in play, kill it.
                Timer timer = Interlocked.Exchange(ref m_timer, null);
                if (timer != null) { timer.Dispose(); }
            }

            // If status has never been reported, report it; else ignore it.
            if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
            {
                m_callback(status);
            }
        }
Exemple #17
0
            private void ReportStatus(CoordinationStatus status)
            {
                if (m_timer != null)
                {
                    Timer timer = Interlocked.Exchange(ref m_timer, null);
                    if (timer != null)
                    {
                        timer.Dispose();
                    }
                }

                if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
                {
                    m_callback(status);
                }
            }
        private void ReportStatus(CoordinationStatus status)
        {
            if (m_timer != null) // If timer is still in play, kill it
            {
                Timer timer = Interlocked.Exchange(ref m_timer, null);
                if (timer != null)
                {
                    timer.Dispose();
                }
            }

            // If status has never been reported, report it; else ignore it
            if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
            {
                m_callback(status);
            }
        }
Exemple #19
0
        private void _allDone(CoordinationStatus status)
        {
            switch (status)
            {
            case CoordinationStatus.AllDone:
                Console.WriteLine("here are the results from all the web servers");
                for (int i = 0; i < m_requests.Length; i++)
                {
                    Console.WriteLine("{0} returned {1} bytes", m_results[i].ResponseUri, m_results[i].ContentLength);
                }
                break;

            case CoordinationStatus.Cancel:
                Console.WriteLine("the operatio was canceled");
                break;

            case CoordinationStatus.Timeout:
                Console.WriteLine("the operatio time-out");
                break;
            }
        }
Exemple #20
0
        private void AllDone(CoordinationStatus status)
        {
            switch (status)
            {
            case CoordinationStatus.Cancel:
                Console.WriteLine("The operation was canceled");
                break;

            case CoordinationStatus.Timeout:
                Console.WriteLine("The operation was time-out");
                break;

            case CoordinationStatus.AllDone:
                Console.WriteLine("HERE ARE:");
                for (int n = 0; n < m_requests.Length; n++)
                {
                    Console.WriteLine($"{m_results[n].ResponseUri} returned {m_results[n].ContentLength} bytes.");
                }
                break;
            }
        }
Exemple #21
0
        private void AllDone(CoordinationStatus status)
        {
            switch (status)
            {
            case CoordinationStatus.Cancel:
                Console.WriteLine("operation canceled");
                break;

            case CoordinationStatus.Timeout:
                Console.WriteLine("operation timeout");
                break;

            case CoordinationStatus.AllDone:
                Console.WriteLine("operation AllDone");
                foreach (var server in m_servers)
                {
                    Console.WriteLine("url is {0},result is {1}", server.Key, server.Value);
                }
                break;
            }
        }
Exemple #22
0
            private void AllDone(CoordinationStatus status)
            {
                switch (status)
                {
                case CoordinationStatus.AllDone:
                    Console.WriteLine("Operation completed; results below: ");
                    ShowResult();
                    break;

                case CoordinationStatus.Timeout:
                    Console.WriteLine("Operation timed-out.");
                    ShowResult();
                    break;

                case CoordinationStatus.Cancel:
                    Console.WriteLine("Operation canceled.");
                    ShowResult();
                    break;

                default:
                    break;
                }
            }
 // Этот метод вызывается после получения ответа от всех веб-серверов, 
 // вызова Cancel или тайм-аута
 private void AllDone(CoordinationStatus status)
 {
     switch (status)
     {
         case CoordinationStatus.Cancel:
             Console.WriteLine("Operation canceled.");
             break;
         case CoordinationStatus.Timeout:
             Console.WriteLine("Operation timed out.");
             break;
         case CoordinationStatus.AllDone:
             Console.WriteLine("Operation completed; results below:");
             foreach (var server in m_servers)
             {
                 Console.Write("{0} ", server.Key);
                 Object result = server.Value;
                 if (result is Exception)
                 {
                     Console.WriteLine("failed due to {0}.", result.GetType().Name);
                 }
                 else
                 {
                     Console.WriteLine("returned {0:N0} bytes.", result);
                 }
             }
             break;
     }
 }
 private void ReportStatus(CoordinationStatus status) {
     // If status has never been reported, report it; else ignore it
     if (Interlocked.Exchange(ref m_statusReported, 1) == 0)
         m_callback(status);
 }