Hallo
Ich habe bei diesem Programmausschnitt das Problem das er mir nur die letzte zahl oder Buchstaben in das textfeld reinschreibt. und ich verstehe nicht warum . woran liegt der Fehler.
Zu erst hat er immer gesagt das es nicht Thread sicher ist wenn ich einen string auf die textbox schreibe . aber das habe ich mit der Invoke gelöst .
Aber bei diesen Problem weiß ich nicht weiter.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| public void OnDataReceived(IAsyncResult asyn) {
try { CSocketPacket theSockId = (CSocketPacket)asyn.AsyncState;
int iRx = 0; iRx = theSockId.thisSocket.EndReceive(asyn); char[] chars = new char[iRx + 1]; Decoder dec = Encoding.UTF8.GetDecoder();
int charLen = dec.GetChars(theSockId.dataBuffer, 0, iRx, chars, 0);
string szData = new string(chars);
textBoxReceive.Invoke(new MethodInvoker(delegate() { textBoxReceive.Text = szData; }));
WaitForData(m_socAccept); } catch (ObjectDisposedException) { System.Diagnostics.Debugger.Log(0, "1", "OnDataReceived: Socket has been closed!\n"); } catch (SocketException se) { MessageBox.Show(se.Message); } } |