我正在做一个数组的删除,当一个套接字连接已经终止。我很喜欢一个小聊天程序。我从一个用户对象数组中删除一个元素。在主线程上修改变量C#
public class User
{
private Thread clthread;
private string name;
private Socket sock;
public User(string _name, Thread _thread, Socket _sock)
{
sock = socket();
clthread = _thread;
name = _name;
sock = _sock;
}
private Socket socket()
{
return new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}//initiaza socket nou
public Thread CLThread
{
get { return clthread; }
set { clthread = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public Socket Sock
{
get { return sock; }
set { sock = value; }
}
}
数组声明如下:
User[] connected = new User[1024];
,这就是我如何删除
private void Disconnection(int id)
{
User client = connected[id];
for (int i = id; i < no - 1; i++)
{
connected[i] = connected[i + 1];
}
client.Sock.Close();
client.CLThread.Abort();
no--;
MessageBox.Show(no.ToString());
//ui clean
}
的问题是,用户阵列计数器在主声明WPF窗口。但我正在执行与每个套接字关联的threa中的删除方法(断开)。
帮助?
你会谈论一个应用程序中的多个线程或关于连接到一个主应用程序的多个应用程序? – HW90 2012-04-25 13:05:18
不能使用列表而不是数组?那么你不需要有数组的计数器。 –
Reniuz
2012-04-25 13:08:26
一个应用程序,多线程 – 2012-04-25 13:12:40