Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo SerialPort.ReadLine

Legge fino al valore di NewLine nel buffer di input.

Spazio dei nomi:  System.IO.Ports
Assembly:  System (in System.dll)

public string ReadLine()

Valore restituito

Tipo: System.String
Contenuto del buffer di input fino alla prima occorrenza di un valore di NewLine.

EccezioneCondizione
InvalidOperationException

La porta specificata non è aperta.

TimeoutException

L'operazione non è stata completata prima dello scadere del periodo di timeout.

-oppure-

Non sono stati letti byte.

Si noti che, sebbene questo metodo non restituisca il valore di NewLine, il valore di NewLine viene rimosso dal buffer di input.

Per impostazione predefinita, il metodo ReadLine verrà bloccato finché non verrà ricevuta una linea. Se questo comportamento è indesiderabile, impostare la proprietà ReadTimeout su qualsiasi valore diverso da zero per imporre il metodo ReadLine e generare un'eccezione TimeoutException se sulla porta non è disponibile nessuna linea.

Se è necessario passare dalla lettura di testo alla lettura di dati binari del flusso e viceversa, selezionare un protocollo che definisce precisamente la differenza tra dati di testo e dati binari, ad esempio con la lettura manuale dei byte e la decodifica dei dati.

NotaNota

Poiché la classe SerialPort inserisce dati nel buffer, a differenza del flusso contenuto nella proprietà BaseStream, può verificarsi una discordanza relativa al numero di byte disponibili per la lettura. La proprietà BytesToRead può indicare la presenza di byte da leggere, i quali tuttavia potrebbero non essere accessibili per il flusso contenuto nella proprietà BaseStream poiché sono stati memorizzati nella classe SerialPort.

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo della classe SerialPort per consentire a due utenti di comunicare tramite chat da due computer separati connessi con un cavo di modem null. Questo esempio di codice fa parte di un esempio più esaustivo fornito per la classe SerialPort.


public static void Main()
{
    string name;
    string message;
    StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
    Thread readThread = new Thread(Read);

    // Create a new SerialPort object with default settings.
    _serialPort = new SerialPort();

    // Allow the user to set the appropriate properties.
    _serialPort.PortName = SetPortName(_serialPort.PortName);
    _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
    _serialPort.Parity = SetPortParity(_serialPort.Parity);
    _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
    _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
    _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);

    // Set the read/write timeouts
    _serialPort.ReadTimeout = 500;
    _serialPort.WriteTimeout = 500;

    _serialPort.Open();
    _continue = true;
    readThread.Start();

    Console.Write("Name: ");
    name = Console.ReadLine();

    Console.WriteLine("Type QUIT to exit");

    while (_continue)
    {
        message = Console.ReadLine();

        if (stringComparer.Equals("quit", message))
        {
            _continue = false;
        }
        else
        {
            _serialPort.WriteLine(
                String.Format("<{0}>: {1}", name, message));
        }
    }

    readThread.Join();
    _serialPort.Close();
}

public static void Read()
{
    while (_continue)
    {
        try
        {
            string message = _serialPort.ReadLine();
            Console.WriteLine(message);
        }
        catch (TimeoutException) { }
    }
}


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft