2010-10-24 95 views
0

我需要调用WCF服务以在我的SilverLight应用程序退出时进行更新。 这是一个浏览器外的应用程序,我正在使用SL4。如何在SilverLight OOB应用程序关闭时调用服务

由于WCF在SL只能异步它是不可能对Application.Exit

做我也试过MainWindow.Closing这是供OOB但是这也不能工作。

试图让闭合功能等待WCF使用线程锁定完成回调,但它只是挂起。

任何想法?

沙哈尔

回答

0

保存数据,并提交下次启动

调用退出服务是一个棘手的功能,无论你是在什么平台上。你不能保证这会发生,因为你的进程可能会因任何原因(任务管理器,logff,关机,蓝屏等)进行调用之前退出。如果您正在编写重要数据,例如系列中的最后一条记录,那么您最多可以向部分数据集打开自己,并在最坏情况下打开数据。

最好将所有的服务器通信作为整体交易。如果您在退出时提交的数据用于记录或指标目的(例如,应用程序运行了多久,'foo'被调用了多少次),更好的模式是连续将数据保存到磁盘,然后进行计算&在下次启动应用程序时提交数据。

+0

感谢您的答案,但我需要通知服务器和其他应用程序,我的SL应用程序同步关闭。 例如,我打开双工端口将更新推送到客户端,我需要知道删除从更新列表中关闭的客户端。 – Shahar 2010-10-25 09:53:19

+0

在推送更新时,在服务器上发现它们时删除断开的连接。关机技术的通知无法可靠运行。 – Jay 2010-10-25 16:17:43

相关问题