我的程序实现的是每隔10秒就调用TCP连接,向服务器获取数据,这个功能的完成我用到了private System.Windows.Forms.Timer timer;控件.在timer的timer_Tick事件里我调用了一个线程:
ThreadStart workerStart=new ThreadStart(run);
Thread workerThread=new Thread(workerStart);
workerThread.Start();
函数viod run():是完成TCP连接服务器获取数据的.
我的问题:当TCP连接出现异常(异常的可能性:服务器关闭),我想要关掉workerThread线程,程序会自动的不断与服务器连接,当连接成功后,这个线程又再次的启动,请问各位大侠,这个功能我该怎么去完成呢?请赐教,小弟新手,请多多谅解!
问题解决马上散分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ThreadStart workerStart=new ThreadStart(run);
Thread workerThread=new Thread(workerStart);
workerThread.Start();
函数viod run():是完成TCP连接服务器获取数据的.
我的问题:当TCP连接出现异常(异常的可能性:服务器关闭),我想要关掉workerThread线程,程序会自动的不断与服务器连接,当连接成功后,这个线程又再次的启动,请问各位大侠,这个功能我该怎么去完成呢?请赐教,小弟新手,请多多谅解!
问题解决马上散分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- DataGridView 合并列出现的问题
- 大家新年好,帮帮忙,有个winform的问题。
- textbox绑定dataset,如何自动更新数据库?
- 在线等。C#如何 遍历注册表查出某一值?
- 关于datagrid 中的DataGridBoolColumn如何获取数据源的值
- 为什么运行没反应???高手指点。。。。。。多谢!!!
- 再加200分,是否有人给个答案呢?
- remoting的客户端如何安装?
- 有没有关于邮件编程的讨论区?bit8、quota-printe解密怎么做?
- 请问如何动态刷新一个DataGrid啊
- 请问:private System.ComponentModel.Container components = null是什么意思?
- 怎么能把写如XML的内容不缩进
多线程操作TCP...异常多~
try
catch()
捕获操作啊
//子线程
bool ISOK = false;
while (!ISOK)
{
try
{
//TcpConnect.Connect();
//...
//TcpConnect.Close();
ISOK = true;
}
catch
{
Thread.Sleep(30000);30秒后重试
}
finally
{
TcpConnect.Close();
}
}
不是很明白楼主所指的是什么?如果有一个线程专门负责连接服务器,当它连成功后,可以使用事件.如:AutoEventHandle等通知别一个线程(此线程可以一直处于等待状态)运行。
开个线程 控制连接的次数和延时 连接失败 就释放等待
如果你想一直连接只到成功 就用loop
取得数据后 等待10秒 再取数据 不需要再连接了把
如果失败 自己再作处理 是退出还是再连接等
timer控件不行,用loop,是什么,没有见过,请举例说明怎么用,谢谢