C/S结构,客户机连不到服务器时一直处于繁忙状态,不能继续工作,可否限制如果超时2秒则继续执行下面的操作?

QYD 2004-12-23 03:21:12
如题,急!!!
...全文
143 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jin_xiaolu2000 2004-12-27
  • 打赏
  • 举报
回复
SendTimeout
TonyTonyQ 2004-12-27
  • 打赏
  • 举报
回复
你可以把线程封装到类里来执行,这个类的属性就作为这个线程的参数。这样就可以解决线程启动函数没有参数的问题。

比如:
Class a
dim b as new thread(addressof x)
public y as int32 '线程用参数

Private sub x()
... 'your codes here
dim z as int32=y*y '访问参数
...
End sub

Public sub ThreadStart()
b.Start
End Sub

...

End class


用的话,就可以这样:
dim demo as new a
a.y=100
a.start

你可以让这个线程来做数据库操作,主线程则开始计时,如果大于2秒,则终止这个线程,并报错。
QYD 2004-12-24
  • 打赏
  • 举报
回复
有没有高手在?
QYD 2004-12-23
  • 打赏
  • 举报
回复
不是用SOCKET的。

但另起线程调用的函数是用参数的,新建线程的ADDREDDOF 后面的函数不能有参数。有没有别的办法?
机器人 2004-12-23
  • 打赏
  • 举报
回复
是不是Socket呀?自己写个控制呗。
做个计时器,判断下连接时间。
while( connTime < 10000 )
{
...
}
v192 2004-12-23
  • 打赏
  • 举报
回复
那也简单,就是去设置连接过期时间为2秒,但是我对WinForm开发不熟悉,具体的类,方法就得你自己去查MSDN了。
QYD 2004-12-23
  • 打赏
  • 举报
回复
具体测试是这样的:
1.将本机(客户机)网线拔掉,客户机马上返回连接不到服务器的错误;
2.将服务器的网线拔掉,客户机一直处于繁忙状态,很久也没有返回错误。

我的思路是:当客户机在2秒钟内连接不上服务器时,马上返回错误,而不是一直处于繁忙状态,该如何解决?因本人是菜鸟,恳请提供较详细的解决方案。
v192 2004-12-23
  • 打赏
  • 举报
回复
C/S结构里面连接数据库这类的操作都采用另开新的线程方式来处理,否则等待时间内程序都处于未相应状态。
QYD 2004-12-23
  • 打赏
  • 举报
回复
高手在哪?

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧