Ich bin wirklich neu in der C# -Programmierung und entwickle eine Anwendung, die auf einem TcpClient basiert.NetworkStream BeginRead/EndRead
Ich möchte gerne BeginRead verwenden & EndRead, ich habe bereits MSN-Dokumentation gelesen, hilft aber nicht.
Ich habe dies:
private void Send() { TcpClient _client = new TcpClient("host", 80); NetworkStream ns = _client.GetStream(); ns.Flush(); /... ns.Write(buffer, 0, buffer.Length); int BUFFER_SIZE = 1024; byte[] received = new byte[BUFFER_SIZE]; ns.BeginRead(received, 0, 0, new AsyncCallback(OnBeginRead), ns); } private void OnBeginRead(IAsyncResult ar) { NetworkStream ns = (NetworkStream)ar.AsyncState; int BUFFER_SIZE = 1024; byte[] received = new byte[BUFFER_SIZE]; string result = String.Empty; ns.EndRead(ar); int read; while (ns.DataAvailable) { read = ns.Read(received, 0, BUFFER_SIZE); result += Encoding.ASCII.GetString(received); received = new byte[BUFFER_SIZE]; } result = result.Trim(new char[] { '\0' }); // Want to update Form here with result }
Wie kann ich ein Formular Komponente Ergebnis aktualisieren?
Vielen Dank für Hilfe.
Ist das Winforms? – CodingGorilla
Ja, es ist WinForms. –
Ich hatte hier das gleiche Problem und ich wollte wissen, ob es in Ordnung ist, ein Ereignis an der Stelle aufzusetzen, an der Sie eine Kommentarzeile zum Aktualisieren des Formulars eingefügt haben. abonnieren Sie die Veranstaltung von Form und aktualisieren was? oder ist es in einem separaten Thread und wird ein Problem verursachen? Vielen Dank. – Shamim