소켓 연결이 끊어졌을 때 배열에서 삭제를하고 있습니다. 약간의 채팅 프로그램에서 작업하고 있습니다. 사용자 개체 배열에서 요소를 삭제하고 있습니다.메인 스레드에서 변수 수정 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 window.but 나는 각 소켓과 관련된 threa에서 삭제 메소드 (Disconnection)를 실행 중입니다.
도움 말?
하나의 응용 프로그램에서 여러 스레드 또는 하나의 기본 응용 프로그램과 연결된 여러 응용 프로그램에 대해 이야기합니까? – HW90
배열 대신 배열을 사용할 수 없습니까? 그럼 당신은 배열의 카운터를 가질 필요가 없습니다. –
Reniuz
하나의 응용 프로그램, 여러 스레드 –