public delegate void LineReceive(UserConnection Sender, string Data);
public class UserConnection{
...
public event LineReceive LineRecieved;
...
private void StremReceiver(IAsyncResult ar)
{
Int32 BytesRead = 0;
String strMess;
try
{
// опять запираем поток
lock (Client.GetStream())
{
// заканчиваем асинхронное чтение
BytesRead = Client.GetStream().EndRead(ar);
}
// переводим полученные данные в кодировку UTF8 (типа чтоб русские буквы читались)
strMess = Encoding.UTF8.GetString(readBuffer, 0, BytesRead - 1);
// провоцируем появление события LineReceive (это для общения с главной программой)
LineReceived(this, strMess);
// и опять запираем
lock (Client.GetStream())
{
// и запускаем поток на чтение данных
Client.GetStream().BeginRead(readBuffer, 0, READ_BUFFER_SIZE, new AsyncCallback(StremReceiver), null);
}
}
catch (Exception ex)
{
}
}
}
Object reference not set to an instance of an object. - ???
Код:
а уже в коде формы
Код:
private void OnLineReceived(UserConnection Sender, String Data)
{
int i = 0;
richTextBox1.Text = "new Connection";
}
{
int i = 0;
richTextBox1.Text = "new Connection";
}
НО!
на LineRecieved выскакивает Object reference not set to an instance of an object.
Почему??? В примере от MS всё работает...
А ошибка выскакивает при обращении к чему?? К параметру Sender?? Просто при входе в функцию возникнуть ошибка не может (если только ты не забыл подписаться на событие).
P.S.: А что за пример от MS??