我有代码如下:
private void button1_Click(object sender, System.EventArgs e)
{
thdSvr=new Thread(new ThreadStart(this.ThreadServer));
thdSvr.IsBackground=true;
thdSvr.Start();
}
private void ThreadServer()
{
client=new IPEndPoint( serIP,2288);
server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
server.Blocking=true;
server.Bind(client);
server.Listen(100);
while(intGuan==0)
{t=server.Accept();
...............
}
}
请问,由于我是adsl,IP经常变,我希望程序可以过一段时间从新检验一下IP有没有变,可是我在判别IP不同后加入
thdSvr.Abort();
thdSvr.Start();
结果告诉我线程正在运行或者已经停止错误.我该如何改才能实现我的需求?
private void button1_Click(object sender, System.EventArgs e)
{
thdSvr=new Thread(new ThreadStart(this.ThreadServer));
thdSvr.IsBackground=true;
thdSvr.Start();
}
private void ThreadServer()
{
client=new IPEndPoint( serIP,2288);
server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
server.Blocking=true;
server.Bind(client);
server.Listen(100);
while(intGuan==0)
{t=server.Accept();
...............
}
}
请问,由于我是adsl,IP经常变,我希望程序可以过一段时间从新检验一下IP有没有变,可是我在判别IP不同后加入
thdSvr.Abort();
thdSvr.Start();
结果告诉我线程正在运行或者已经停止错误.我该如何改才能实现我的需求?
thdSvr.Suspend();
thdSvr.Resume(();
thdSvr.Resume(();
好像不刷新IP地址呀
{
// 关闭老线程
if (thdSvr != null)
{
intGuan = -1;// 控制循环变量让线程循环退出
/*用 socket 向自己发送一个 Connect() 请求,让 Accept 返回,并退出循环
... 此处不给出代码,留给楼主自己写 ...
*/
thdSvr = null;
} // 启动新线程
thdSvr=new Thread(new ThreadStart(this.ThreadServer));
thdSvr.IsBackground=true;
thdSvr.Start();
}private void button1_Click(object sender, System.EventArgs e)
{
StartAcceptThread();
}
thdSvr=new Thread(new ThreadStart(this.ThreadServer));
thdSvr.IsBackground=true;
thdSvr.Start();
线程也不再运行了.
... 此处不给出代码,留给楼主自己写 ...
*/