我有一个返回 Task< PixelData > 的方法。
myObject.pixelData = await rootPage.GrabPixelData("mypic.png");
我已经(从调试器)确认该方法已完成(并返回一个非空值),但是当执行返回时 myObject.pixelData 仍然为空。
奇怪的是,该点之后的行永远不会被命中(我在那里设置的断点永远不会停止执行)。
这是课程:
public class PixelData
{
public byte[] sourcePixels;
public int sizeOfSourcePixels;
public int imageWidth;
public int imageHeight;
}
这是被调用的方法:
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 类中的某个接口继承吗?我需要将结果转换为另一种类型吗?为什么下一行永远不会被执行?