예제 #1
0
        void Poll(SelectMode mode, CancellationToken cancellationToken)
        {
                        #if NETFX_CORE
            cancellationToken.ThrowIfCancellationRequested();
                        #else
            if (!cancellationToken.CanBeCanceled)
            {
                return;
            }

            if (Socket != null)
            {
                do
                {
                    cancellationToken.ThrowIfCancellationRequested();
                } while (!Socket.Poll(1000, mode));
            }
            else
            {
                cancellationToken.ThrowIfCancellationRequested();
            }
                        #endif
        }
예제 #2
0
        void Poll(SelectMode mode, CancellationToken cancellationToken)
        {
#if NETFX_CORE
            cancellationToken.ThrowIfCancellationRequested();
#else
            if (!cancellationToken.CanBeCanceled)
            {
                return;
            }

            if (Socket != null)
            {
                do
                {
                    cancellationToken.ThrowIfCancellationRequested();
                    // wait 1/4 second and then re-check for cancellation
                } while (!Socket.Poll(250000, mode));
            }
            else
            {
                cancellationToken.ThrowIfCancellationRequested();
            }
#endif
        }