2

所以我在这里有这个方法:

    public async Task<PixelData> GrabPixelData(string imageFileName)
    {
        if (!ImageDictionary.ContainsKey(imageFileName))
        {
            // doesn't exist yet, so load it
            PixelData pd = await LoadPic(imageFileName);
            ImageDictionary.Add(imageFileName, pd);
        }

        var test = ImageDictionary[imageFileName];

        return ImageDictionary[imageFileName];
    }

调试器说“测试”包含一个 PixelData 类型的对象(具有真实的非静态值)。

但是,当它返回调用方法时,它会说该行存在空引用异常:

    private async void LoadPic()
    {
        myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
    }

MyObject 也不为空(根据调试器)...

是任务返回吗?

编辑:

ImageDictionary 是字典。

4

2 回答 2

1

将您的函数更改LoadPic为 return Task

private async Task LoadPic()
{
    myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
}
于 2013-02-28T04:23:14.897 回答
0

您的方法GrabPixelData清楚地返回Task<PixelData> 实例而不是PixelData。所以是的,你的猜测是正确的,它正在返回一个Task实例。

于 2013-02-28T04:40:02.417 回答