Когда происходит c # Invoke (), я получаю исключение аргумента - PullRequest
0 голосов
/ 09 января 2012

У меня есть 2 темы: пользовательский интерфейс и сервер.Если серверный поток получает несколько сообщений, он должен передать их в пользовательский интерфейс.Вот почему я использую invoke-method.

 public class Server
    { 
    private Form1 myForm;
    private String server;

  public Client(Form1 myForm1, String serv)
  {
    myForm = myForm1;
    server = serv;
   }
   delegate void SetTextCallback(string text, Int16 position);
   public void connection()
   {....
     try
      {
       //Connection succeed
       //got message
       SetText(data[0], Convert.ToInt16(data[1]));
       ...
       }catch (ArgumentException ae)
            {
                ...
            }
            catch (SocketException se)
            {
               ....
            }
    }
    private void SetText(string text, int position)
    {
     if (myForm.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(
                                        this.myForm.SetTextToListBox1);
                    myForm.Invoke(d, new object[] { text, position });
                }
    }

На стороне пользовательского интерфейса у меня это

public void SetTextToListBox1(String text, Int16 position){}

Когда я отлаживаю, я вижу, что в setText() я получаю ArgumentException.

1 Ответ

0 голосов
/ 09 января 2012

Если введенный код правильный и полный, вы должны изменить this.myForm.SetTextToListBox1 на this.myForm.SetText

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...