【发布时间】:2010-08-13 15:11:45
【问题描述】:
我在 SL4 应用程序中使用的 WCF RIA 服务有一个奇怪的小问题。这是我拥有的按钮单击处理程序的代码:
private void btnTest_Click(object sender, RoutedEventArgs e)
{
LanguageContext context = new LanguageContext();
LoadOperation<Language> op = context.Load(context.GetLanguagesQuery());
op.Completed += (obj, args) =>
{
if (!op.HasError)
{
System.Threading.Thread.Sleep(500);
MessageBox.Show(context.Languages.FirstOrDefault().DisplayName);
}
};
}
请注意,处理程序中有一个 Sleep 调用。没有那个睡眠调用,我得到一个异常(将请求发送到服务器时发生了传输级错误。(提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。))。如果此代码在“已完成”处理程序中,我认为它实际上已经在它到达那里时完成了。为什么没有 Sleep() 它会死掉?顺便说一句,Sleep() 不是生产的选项,它只是一个解决问题的工具:)
【问题讨论】:
-
顺便说一句,这是一个域服务,作用于 SQL Server 2008 R2 DB 的 EF 模型...如果其中任何一个对您很重要。
-
同样,如果有用的话,我的 SQL Server 上启用了命名管道。这是连接字符串:Data Source=.;Initial Catalog=TDS;Integrated Security=True;MultipleActiveResultSets=True
标签: sql-server-2008 silverlight-4.0 entity-framework-4 wcf-ria-services