将任务类型保存为String,导致灾难性故障

我正在尝试将我在Canvas上编写的Ink保存在类中,并使用此链接中的这两种方法重新加载它。

private async Task WriteInk() { using (var stream = new InMemoryRandomAccessStream()) { await inkManager.SaveAsync(stream); await stream.FlushAsync(); stream.Seek(0); byte[] bytes = new byte[stream.Size]; IBuffer buffer = bytes.AsBuffer(); await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None); return Convert.ToBase64String(bytes); } } private async void ReadInk(string base64) { if (string.IsNullOrEmpty(base64)) return; var bytes = Convert.FromBase64String(base64); using (var stream = new InMemoryRandomAccessStream()) { await stream.WriteAsync(bytes.AsBuffer()); await stream.FlushAsync(); stream.Seek(0); await inkManager.LoadAsync(stream); if (inkManager.GetStrokes().Count > 0) { RenderInk(); } } } 

我有一个类,我保存从WriteInk()返回的base64:

  public class MyCanvas { public string canvasIndex { get; set; } public String canvasStrokes { get; set; } } 

我的问题是在调用WriteInk()

 MyCanvas mc = new MyCanvas(); mc.canvasStrokes = await m_CanvasManager1.WriteInk(); 

我得到一个例外:灾难性的失败。 +我不能使用string类型的canvasStrokes并将Task保存到它+方法ReadInk()将base64作为string

我应该在什么类型保存Task以便能够在第二种方法中将其用作string

当我调用WriteInk时,它到达await inkCanvas.SaveAsync(stream); 它返回到mc.canvasStrokes = await m_CanvasManager0.WriteInk(); 并给出这个例外:

An exception of type 'System.Exception' occurred in mscorlib.dll but was not handled in user code. Additional information: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))