WP7 - 套接字架构 - 如何管理套接字连接?主题?

问题描述:

我必须实现与服务器的异步套接字连接来更新文本(如聊天)并在我的应用程序的屏幕中显示此文本。WP7 - 套接字架构 - 如何管理套接字连接?主题?

我看过一些关于如何实现这种套接字的例子,这不是一件困难的事情......但我正在寻找改进我的程序。

我在想,也许我需要在后台管理连接,我不知道我该如何实现这个任务......这是一个好主意吗?管理一个线程中的用户界面和其他连接

如果有人能让我关注这类任务吗?

谢谢。

由于传统的套接字I/O处于阻塞状态,因此一定需要将I/O代码移动到其他线程中,否则您的UI线程将被阻塞,无法接收用户输入。

好的,所以你需要另一个线程。现在出现的问题是,如果某些输入来自套接字,则此线程无法自行更新UI,因为只有UI线程才能完成此操作。为此,您需要调用Dispatcher.BeginInvoke将更新转发到UI线程。

+0

感谢您的信息,但您能否建议我可以使用哪种线程来执行此任务?我一直在听一些关于周期性任务和资源密集型任务的东西......我认为这种操作对于达到我的目标是没有意义的......另一方面,我一直在阅读有关执行任务差异的3种方法在后台:System.Threading.Thread,System.ComponentModel.BackgroundWorker和System.Threading.ThreadPool.QueueUserWorkItem()...你可以给任何参考关于哪个最好的方式来管理套接字在后台?感谢 – 2012-03-15 10:27:16

+0

@Juan Pedro:对于无限期地从套接字读取,我会使用'System.Threading.Thread'。线程池不适用于长时间运行的I/O,'BackgroundWorker'通常用于执行耗时的操作,如数据库操作或下载,并且可以报告进度,但通常不用于无限期地等待套接字。 – Tudor 2012-03-15 10:47:03

+0

谢谢你的回答...让我等一天再把这个帖子设置为已解决。我会等待听到其他用户的意见。不管怎样,谢谢你。 – 2012-03-15 11:13:12