为什么不委托调用函数?

Atu*_*oel 0 c# windows-phone-8

1:有人可以向我解释第一个功能的最后一行吗?

2:第二个功能不起作用.请告诉我原因.PHP脚本正在获取数据.

我编辑了代码以获得此功能,但现在应用程序崩溃了一个System nullreferenceexception.请帮忙.

    private void checkbutton_Click(object sender, RoutedEventArgs e)
    {
        statustext.Text = "Checking for new score";
        var webclient = new WebClient();
        webclient.OpenReadCompleted += new OpenReadCompletedEventHandler(getscores_OpenReadCompleted);
        webclient.OpenReadAsync(new Uri("http://example.com/get.php?"+DateTime.Now));


    }
    void getscores_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        StreamReader s = null;
        Stream reply=null;
        try
        {

               reply = (Stream)e.Result;
                 s = new StreamReader(reply);                  

            }

        catch 
        {
            statustext.Text = "ERROR IN FETCHING";
        }
        scorebox.Text = s.ReadToEnd();
        statustext.Text = "DoNE";

    }
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 6

第一种方法的最后一行是将处理程序附加到事件.它说当OpenReadCompleted事件触发时,也就是说当读取完成时,getscores_OpenReadCompleted应该调用该方法.

getscores_OpenReadCompleted不起作用,因为它试图从非UI线程访问UI元素.

你还加入了处理程序启动异步操作后,因此,虽然它是不可能的,这是绝对有可能在操作完成非常迅速,在添加处理程序之前的事件.虽然这种情况非常不寻常,但只需在启动异步操作之前添加处理程序即可快速轻松地修复它.