所以我在这里有这个方法:
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];
}
调试器说“test”包含PixelData类型的对象(具有真实的非静态值)。
然而,当它返回到调用方法时,它表示该行上有一个空引用异常:
private async void LoadPic()
{
myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
}
MyObject也不为空(根据调试器)......
是否返回了一个任务?
编辑:
ImageDictionary是Dictionary。
答案 0 :(得分:1)
将LoadPic
功能更改为返回Task
:
private async Task LoadPic()
{
myObject.pixelData = await rootPage.GrabPixelData("obj1.png");
}
答案 1 :(得分:0)
您的方法GrabPixelData
明确返回Task<PixelData
&gt;实例而非PixelData
。
所以是的,你的猜测是正确的,它正在返回一个Task
实例。