作者Gawain0416 (Gawain)
看板C_Sharp
标题[问题] 关於thread写关於像游戏大厅的方式
时间Tue Nov 3 17:05:22 2009
大家好。
请问一下,现在程式状况是:
我有一个socket server,及client程式。
client已经连入,之後会在游戏大厅上"开房间"
所以会有两个thread
一、开房间的人
二、进入房间的人
之後server会像两个人发送讯息,告知服务…等
我在server是写
while (true)
{
ListenClient lc = new ListenClient(tcpListener);
//ListenClient是我定义的物件
ThreadStart serverThreadStart = new ThreadStart(lc.ServerThreadProc);
//ServerThreadProc也是定义要执行的method
Thread serverthread = new Thread(serverThreadStart);
serverthread.Start();
}
目前遇到问题是:
我只能在ListenClient里取得自己的"Thread.CurrentThread.ManagedThreadId"
但我确不知道要怎麽去控制那个id的执行绪
小弟也有想过ThreadPool的方式,
如:
while (true)
{
ListenClient lc = new ListenClient(tcpListener);
ThreadPool.QueueUserWorkItem(lc.ServerThreadProc, i);
i++;
}
可是也找不到可以控制其中一条执行绪的方法?
看了objectBrowser,和一些thread的资料
可是还是不知道要怎麽解?
希望大大可以帮忙解答一下,
谢谢喔!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.220.144
1F:→ remmurds:何必那麽复杂呢?自订一个class表示房间 然後用阵列储存 11/03 19:40
2F:→ remmurds:每个已经建立的房间 让所有的client thread去存取 11/03 19:41
3F:→ remmurds:只是存取时要记得使用lock将SyncRoot锁定 处理同步化问题 11/03 19:42
4F:→ Gawain0416:小弟试试,谢谢! 11/03 22:40