C# .NET 4,如何将任务完成结果传递给另一个方法?

Posted

技术标签:

【中文标题】C# .NET 4,如何将任务完成结果传递给另一个方法?【英文标题】:C# .NET 4, How to pass the task completion result to another method? 【发布时间】:2019-04-13 17:48:43 【问题描述】:

我正在使用 C# 将 Google Firebase 集成到 Unity 游戏引擎中。

这是我的代码:

FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(databaseUrl);
var firebaseDatabase = FirebaseDatabase.DefaultInstance;

firebaseDatabase.GetReference("SomePath").GetValueAsync().ContinueWith(task =>
    HandleCallback(task.Result.ToDictionary());
);

void HandleCallback(dictionary<string,object> dic)

    Debug.Log(dic.Keys.Count);

我需要以某种方式将结果传递给另一个方法来处理完成。我似乎无法让它工作。

这里没有错误,日志只是空的。

但是,如果我在 Task 中调用 Debug.Log(dic.Keys.Count),它会起作用。

希望学习并完成这项工作。 谢谢。

【问题讨论】:

Is this relevant? @MatthewWatson 感谢您的链接,虽然我尝试了那里提到的解决方案,但仍然无法触发回调方法。 【参考方案1】:

好的,这很奇怪,但我注意到如果我从结果中手动创建字典而不是使用"ToDictionary()",回调方法会被触发。

如果您遇到同样的问题,希望它可以节省您的时间。

【讨论】:

以上是关于C# .NET 4,如何将任务完成结果传递给另一个方法?的主要内容,如果未能解决你的问题,请参考以下文章

将结果集值传递给另一个类

C# - 将变量传递给另一个表单

将 UI Thread 方法传递给另一个线程以在 C# 中调用

将图像传递给另一个活动时,图像会丢失其原始结果

如何将选中的复选框值传递给另一个页面?

将二维数组传递给另一个类 C++