Windows phone 定期代理-在预约时等待searchasync

Windows phone 定期代理-在预约时等待searchasync,windows-phone,Windows Phone,我正在表演一场音乐会 appts.SearchAsync 在 在“期刊代理”中。 问题是在期刊代理方面。searchasync及其嵌套函数以前从未完成过 NotifyComplete(); } 请您帮助我如何等待这里正在进行的所有呼叫: static void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e) { try

我正在表演一场音乐会

appts.SearchAsync 

在“期刊代理”中。 问题是在期刊代理方面。searchasync及其嵌套函数以前从未完成过

NotifyComplete();
        }
请您帮助我如何等待这里正在进行的所有呼叫:

static void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
        {
            try
            {
                UpdatePrimaryTile(e.Results
                .Where(a => a.Subject != null)
                .OrderBy(a => a.StartTime)
                .ToList());
            }
            catch (System.Exception)
            {

            }
        }

public static void UpdatePrimaryTile(List<Appointment> calendarItems)
        {
...........
..........
}
静态无效约会\u搜索已完成(对象发送者、约会搜索者)
{
尝试
{
UpdatePrimaryTile(如结果
.Where(a=>a.Subject!=null)
.OrderBy(a=>a.StartTime)
.ToList());
}
捕获(系统异常)
{
}
}
公共静态void UpdatePrimaryTile(列出日历项)
{
...........
..........
}
在调用“NotifyComplete”之前

谢谢大家!


Jakub

您可以使用wait关键字等待异步操作完成

await appts.SearchAsync
另一个选项-拥有一个在异步调用完成之前一直处于休眠状态的循环

appts.SearchAsync
while (true)
{
   if (searchCompleted)
   {
      break;
   }
   else
   {
      Thread.Sleep(100);
   }
}
然后在事件处理程序中

void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
{
   searchCompleted = true;
   // Other logic
}

虽然这是一个很好的问题,但开发问题应该在堆栈溢出时提出@caschw是正确的。我将转移你的问题。
void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
{
   searchCompleted = true;
   // Other logic
}