WCF 多线程检查 chanel status出错

kobefly 2014-02-19 01:32:44
在多线程检查chanel的status时出现异常
 public bool VerifyConnection()
{
if (clt == null)
{
return OpenClient();
}
else if (clt.State != CommunicationState.Opened)
{
return OpenClient();
}

return true;
}


第一个线程进来运行OpenClient()的时候(timeout 2s), 另一个线程进来, 奇怪的是clt.State 有时候是opened, 有时候是opening, opening还可以理解, 但是opened作何解呢? 是不是这个state不准?

求助问题如何解决。
谢谢。
...全文
517 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kobefly 2014-03-25
  • 打赏
  • 举报
回复
引用 7 楼 hurricane880 的回复:
这位兄弟我还是没懂你的意思, 我理解你的意思是state不能是opened但是贴的这段代码为什么还检查她状态是否为opened呢? else if (clt.State != CommunicationState.Opened) [quote=引用 6 楼 kobefly 的回复:] [quote=引用 5 楼 hurricane880 的回复:] 弱弱的问下,为啥state不能是opened? 除了这2中状态不是还应该有很多其他状态吗, 也许我没看懂问题 http://msdn.microsoft.com/en-us/library/ms789041(v=vs.110).aspx
按照我的理解, opened应该是这个connection已经建立起来了。[/quote][/quote] 如果是opened就不用再去建connection了, 如果不是opened就可以去创建新连接
hurricane880 2014-03-18
  • 打赏
  • 举报
回复
这位兄弟我还是没懂你的意思, 我理解你的意思是state不能是opened但是贴的这段代码为什么还检查她状态是否为opened呢? else if (clt.State != CommunicationState.Opened)
引用 6 楼 kobefly 的回复:
[quote=引用 5 楼 hurricane880 的回复:] 弱弱的问下,为啥state不能是opened? 除了这2中状态不是还应该有很多其他状态吗, 也许我没看懂问题 http://msdn.microsoft.com/en-us/library/ms789041(v=vs.110).aspx
按照我的理解, opened应该是这个connection已经建立起来了。[/quote]
kobefly 2014-03-18
  • 打赏
  • 举报
回复
引用 5 楼 hurricane880 的回复:
弱弱的问下,为啥state不能是opened? 除了这2中状态不是还应该有很多其他状态吗, 也许我没看懂问题 http://msdn.microsoft.com/en-us/library/ms789041(v=vs.110).aspx
按照我的理解, opened应该是这个connection已经建立起来了。
hurricane880 2014-03-13
  • 打赏
  • 举报
回复
弱弱的问下,为啥state不能是opened? 除了这2中状态不是还应该有很多其他状态吗, 也许我没看懂问题 http://msdn.microsoft.com/en-us/library/ms789041(v=vs.110).aspx
kobefly 2014-03-12
  • 打赏
  • 举报
回复
这个state是不是不准呢?
风一样的大叔 2014-02-21
  • 打赏
  • 举报
回复
应该加锁,多线程运行程序是异步的,有可能导致上面的情况
kobefly 2014-02-19
  • 打赏
  • 举报
回复
引用 1 楼 zhuankeshumo 的回复:
没加锁?
哥们说的对, 确实没加。 我自己尝试过加了lock, 然后就不会有问题了。 我对wcf是不太懂的,是不是通常情况下应该加锁? 然后一个问题就是这个state是不是不准?
newtee 2014-02-19
  • 打赏
  • 举报
回复
没加锁?

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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