如何获取任务的结果或返回值?

2024-04-02

有人可以向我解释如何返回任务的结果吗? 我目前正在尝试执行以下操作,但我的任务没有返回我期望的列表?这里有什么问题?

static void Main()
{
    List<Task> tasks = new List<Task>();
    List<string> sha256_hashes = new List<string>();
    List<string> results = new List<string>();

    sha256_hashes.Add("hash00");
    sha256_hashes.Add("hash01");
    sha256_hashes.Add("hash03");
    foreach(string sha256 in sha256_hashes)
    {
        string _sha256 = sha256;
        var task = Task.Factory.StartNew(() => GetAdditionalInfo(_sha256));
        tasks.Add(task);
    }
    Task.WaitAll(tasks.ToArray());
   //I want to put all the results of each task from tasks but the problem is
   //I can't use the Result method from the _task because Result method is not available
   //below is my plan to get all the results:
   foreach(var _task in tasks)
   {
        if(_task.Result.Count >= 1)  //got an error Only assignment, call, increment, dec....
             results.AddRange(_task.Result); //got an error Only assignment, call, increment, dec....
   }

   //Do some work about results
}
static List<string> GetAdditionalInfo(string hash)
{
    //this code returns information about the hash in List of strings

}

返回结果Task你需要定义Task像这样:Task<TResult>并将结果的返回类型作为泛型参数传递。 (否则任务将不会返回任何内容)

例如:

        // Return a value type with a lambda expression
        Task<int> task1 = Task<int>.Factory.StartNew(() => 1);
        int i = task1.Result;

        // Return a named reference type with a multi-line statement lambda.
        Task<Test> task2 = Task<Test>.Factory.StartNew(() =>
        {
            string s = ".NET";
            double d = 4.0;
            return new Test { Name = s, Number = d };
        });
        Test test = task2.Result;

        // Return an array produced by a PLINQ query
        Task<string[]> task3 = Task<string[]>.Factory.StartNew(() =>
        {
            string path = @"C:\Users\Public\Pictures\Sample Pictures\";
            string[] files = System.IO.Directory.GetFiles(path);

            var result = (from file in files.AsParallel()
                          let info = new System.IO.FileInfo(file)
                          where info.Extension == ".jpg" 
                          select file).ToArray();

            return result;
        });

问题是您没有指定任务将返回任何内容.

您已经定义了一个不返回任何内容的任务列表。

您需要做的是在中指定返回类型Task当你定义Task作为泛型类型List在你的情况下。就像是:

var taskLists = new List<Task<List<string>>>();

这是指定返回类型的方法Task

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取任务的结果或返回值? 的相关文章

  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 如何在 C++ 中获取使用我的服务的用户的 SID 和用户名

    我正在尝试创建一个本质上充当本地网络服务器的服务 理论上 用户将通过浏览器中的 localhost 访问 URI 来使用 REST API 即http localhost 2017 path to function call http lo
  • 用于发送电子邮件的 Google Sheets 脚本

    链接到工作表 https docs google com spreadsheets d 1qOuZigHnjBi85ttU4vbj0vIJpn7GAlqHPa7Lt8I2bUA edit usp sharing 我只需要脚本 sendEma
  • Python tarfile 进度输出?

    我使用以下代码来提取 tar 文件 import tarfile tar tarfile open sample tar gz tar extractall tar close 但是 我想以目前正在提取哪些文件的形式密切关注进度 我怎样才能
  • 在 Angular 2 中的 Jquery 数据表中绑定按钮事件

    我正在尝试在我的 Angular 2 应用程序中实现 Jquery 数据表 我可以在我的 html 文件中渲染表格 如下所示
  • 我们可以加密android中的文件夹吗?

    其实我是安卓新手 我们可以加密一个文件夹吗 包含 SD 卡中的子文件夹和文件并将其解密回来 任何帮助将不胜感激 谢谢 您对 Java 的总体了解程度如何 您可以使用所有javax security and javax crypto类 如Ci
  • 保留对每个用户连接的套接字的引用

    我 为了清楚起见 聊了聊 用户可以登录 写消息 其他人会看到 name message 我不想每次写的时候都发送用户名和IDsocket emit say message 因为这是多余的 所以我在服务器上做的事情如下 var io requ
  • Qt 忽略 makefile、.pro.user 文件

    我开发基于 Qt 的项目并使用 Mercurial 存储库 bitbucket org 服务 进行版本控制 每次我在存储库中提交时 都会有一些文件仅包含标头中的日期时间更改 因此 每次提交我都应该检查每个文件是否有重大更改 而不仅仅是时间戳
  • Mongoose / MongoDB - 在一条指令中更新具有不同 _id 和值的多个文档

    我正在寻找一种在一条指令中更新多个 MongoDB 文档的方法 我知道有一个 updateMany 查询 但它需要严格的过滤参数才能更新多个文档 我有一组想要更新的对象 如下所示 const objectsToUpdate id 1 fie
  • Angular 6:如何访问 mat-autocomplete 下拉列表中的所有选项值?

    给出 Angular 文档中的示例你可以在这里看到 https material angular io components autocomplete overview setting separate control and displa
  • 对仅包含 a-z 和空格的单词数组进行排序的最快方法是什么?

    我想知道是否有比快速排序 合并排序更快的方法来对此类数组进行排序 数组的最大长度为 10 6 单词的长度 gt 10 且 您可以将所有单词放在一个trie http en wikipedia org wiki Trie or a 基数树 h
  • 缺少值组合的完整数据框

    我有一个包含两个因素的数据框 distance 和年份 years 我想完成所有years每个因子的值均除以 0 即由此而来 distance years area 1 NPR 3 10 2 NPR 4 20 3 NPR 7 30 4 10
  • 如何清除Java 9 JShell控制台?

    我没有找到任何清除 Java 9 JShell 控制台的命令 我也尝试通过这个程序清除JShell控制台 但它也不起作用 import java io IOException class CLS public static void mai
  • Android - 如何从 kotlin 流中读取值?

    我有来自房间数据库的剧集流程 我可以毫无问题地观察该流程的实时数据 但我还想在用户单击按钮时读取此流程中的最后一个值 我尝试使用first 终端流运算符 但它无法编译 您能帮忙或提出其他建议吗 非编译尝试从流中读取 bd buttonNex
  • 将上下文传递给自定义挂钩或在自定义挂钩内调用 useContext 更好吗?

    我有越来越多的自定义挂钩 其中许多通过以下方式访问相同的反应上下文useContext钩 在许多组件中 需要使用多个自定义挂钩 打电话比较好吗useContext每个组件一次并将上下文传递到我的自定义挂钩中 还是最好调用useContext
  • 如何删除/取消注册 GitLab 运行程序

    几个月前我注册了一个个人 GitLab 运行器 但我不再使用它 如何完全删除它 使其不会显示在我的 GitLab CI CD 设置页面上 列出跑步者以获取他们的令牌和 URL sudo gitlab runner list 使用指定运行者令
  • Android 10.0 应用程序在 BOOT 上启动

    我们有一个 Android 应用程序 我们打算在手机启动期间启动 启动 通过在 Android 10 中尝试一些代码 我们意识到在 Android 8 0 之后无法在启动时启动应用程序 以前在 Android 6 中 这是可能的 即使在物理
  • Heroku Dynos 是否享受 AWS 网络内的免费数据传输?

    我正在考虑将 Heroku 用于 NodeJS 应用程序 我想知道他们的 Dynos 是否享受 AWS 网络内的免费内部数据传输 我想使用 DynamoDB ElastiCache RDS SQS 和许多其他 AWS 产品 如果我可以从 H
  • 如何使用 OpenXML 查找段落中的页码?

    For a 段落对象 如何使用 Open XML SDK 2 0 for Microsoft Office 确定该对象位于哪个页面 使用以下方法无法获取 Word 文档的页码OpanXml Sdk因为这是由客户端处理的 例如 MS Word
  • 推送 UIView 时隐藏 UITabBar

    我有一个UITabBarController其中默认视图控制器是UINavigationController 当我在视图中推送某个视图时 我希望能够隐藏 UITabBarController 的 UITabBarUINavigationCo
  • 如何获取任务的结果或返回值?

    有人可以向我解释如何返回任务的结果吗 我目前正在尝试执行以下操作 但我的任务没有返回我期望的列表 这里有什么问题 static void Main List