2017-01-07 4 views
0

Сценарий: вы открываете сервер и начинаете слушать клиентов по потокам. Я использую winforms для подключения каждого потока в список пользователей, но его доказательство сбивает с толку так далеко.Как добавить имя из текстового поля в список из нескольких потоков

Я использую Интернет, чтобы получить ответ на мою проблему, но получаю головную боль от мигрени, потому что это сводит меня с ума.

Пожалуйста, помогите помощи был бы оценен

Gaz :)

private delegate void updateList(string text); 

    private void SetText(string text) 
    { 
     if (this.txtNickname.InvokeRequired) 
     { 
      updateList ul = new updateList(SetText); 
      this.Invoke(ul, new object[] { text}); 
     } 
     else 
     { 
      this.txtNickname.Text = text; 
      userList.Items.Add(this.txtNickname.Text); 
     } 
    } 

    private void btnConnect_Click(object sender, EventArgs e) 
    { 
     if (!granted) 
     { 
      granted = connected.Connect(this, "127.0.0.1", 4444, txtNickname.Text); 
      if (granted) 
      { 
       btnConnect.Text = "Disconnect"; 

       if (this.txtNickname.Text != " ") 
       { 
        userList.Items.Add(txtNickname.Text); 
        this.txtNickname.Focus(); 
        this.txtNickname.Clear();       
       } 
      } 
      else 
      { 
       connected.Disconnect(); 
       granted = false; 
       btnConnect.Text = "Connect"; 

      } 
     } 
    } 

ответ

0

Я не вижу, где SetText() становится называется, но я вижу два места, где добавляются текст to userList.Items. Откуда этот входящий текст действительно появился? Вероятно, это место, где можно вызвать SetText().

+0

привет спасибо за ответ, который был последней попыткой заставить его работать, поскольку я смотрел на все возможные возможности из моих текущих знаний. вещи, которые я пробовал до сих пор, вызывали список пользователей, добавляя в текстовое поле ник в поле списка, но только для одного клиента, а не для другого. поэтому мне нужно, чтобы несколько потоков связывались со всеми списками клиентов, но до сих пор нет информации в Интернете. –