Сбой графического интерфейса C Sharp / сокета при обновлении графического интерфейса

#mongodb #mongodb-.net-driver

#mongodb #mongodb-.net-driver

Вопрос:

Всякий раз, когда handleResponse вызывает функцию делегирования «func», мой графический интерфейс выходит из строя без исключения. Функция делегирования добавляет текст в RichTextBox в графическом интерфейсе.

Если я назову это.функция в «connect» работает просто отлично.

 private void handleResponse(IAsyncResult result)
{
    try
    {
        this.func.Invoke("test");
    }
    catch (Exception e)
    {
        throw e;
    }
}

public void connect(string ip, int port, delegateFunction func) {     
    try
    {
        connection.Connect(ip, port);
        socket = connection.Client;
        this.func = func;            
        socket.BeginReceive(incomingBuffer, 0, incomingBuffer.Length, SocketFlags.None, handleResponse, null);
    }
    catch (Exception e)
    {
        throw e;
    }
}           
  

Ответ №1:

Может быть проблема с потоками. Ваш графический интерфейс, вероятно, должен быть обновлен в определенном потоке графического интерфейса. То, как достигается переключение на этот поток, зависит от используемой вами среды GUI.