今天跟着视频做聊天室,做到客户端向服务端发送文件,如果服务端判断出接收到的是文件就弹出保存对话框让用户保存这一步,代码如下:
SaveFileDialog sfd = new SaveFileDialog();
sfd.ShowDialog();
可是却怎么也Show不出来,各种纠错,纠结了半个多小时,最后在网上查到需要在建立接收消息的这个线程时,将它的模式设置成单线程,代码示例:
Thread threadConn = new Thread(serverReceive);
threadConn.SetApartmentState(ApartmentState.STA);//这一步是关键
threadConn.IsBackground = true;
threadConn.Start(sokConn);
然后就可以顺利的Show出来对话框,其实不是程序出了错。我在这里浪费了挺长时间,希望给后面做到这一步的同学有所帮助。 |