The Cancel method cancels any blocking network operation in 
          the current thread. This is typically used inside an event handler, 
          causing the blocking method to return to the caller with an error 
          indicating that the current operation was canceled. This method sets 
          an internal flag that is periodically checked during a blocking 
          operation, such as waiting for more data to arrive. If the current 
          thread is not blocked at the time that this method is called, it will 
          have no effect.