解决WinRT中,StreamSocket被意外Dispose的问题

在编写IP摄像头的Win8.1版和WP8版时遇到多线程调用StreamSocket发送数据时被意外Dispose,具体是StreamSocket是从StreamSocketListener接受连接后传过来的,然后用DataWriter发送一行数据后插入List供别的线程发送数据,问题就出现在别的线程发送数据时产生Dispose异常,可是奇怪的是我并没有将StreamSocket给Dispose,因为我还要用来传输数据呢!

问题解决:在插入List之前,将DataWriter先DetachStream,然后再给别的线程条用,这样就正常了!估计是DataWriter离开作用域后被销毁时顺便把StreamSocket给连带Dispose了,这个在使用StreamSocket时候得注意一下!当然如果用用DataReader的话也得DetachStream!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

答案 : *
30 ⁄ 15 =