返回结果得Task

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TaskDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var t1 = new Task<Tuple<int, int>>(TaskWithResult, Tuple.Create<int, int>(8, 3));
            t1.Start();
            Console.WriteLine(t1.Result);
            t1.Wait();
            Console.WriteLine("result from task:{0} {1}",t1.Result.Item1,t1.Result.Item2);

            Console.Read();
        }

        static Tuple<int,int> TaskWithResult(object division)
        {
            Tuple<int, int> div = (Tuple<int, int>)(division);
            int result = div.Item1 / div.Item2;
            int reminder = div.Item1 % div.Item2;
            Console.WriteLine("Task creat a result");
            System.Threading.Thread.Sleep(4000);
            return Tuple.Create<int, int>(result, reminder);

        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExecutorService是Java中的一个线程池框架,它用于管理和控制多线程执行任务。而批量返回结果是指在多个任务执行完毕后,将它们的执行结果按顺序或乱序进行返回。 ExecutorService提供了一种方便的方式来处理并发任务的执行,通过创建ThreadPoolExecutor线程池来管理多个线程。我们可以将多个任务提交给ExecutorService,并通过Future对象来获取任务的返回结果。 在提交任务时,ExecutorService会为每个提交的任务返回一个Future对象。通过这个Future对象,我们可以判断任务是否已经执行完毕,如果已经完成,则可以通过调用Future对象的get()方法来获取任务的返回结果。如果任务还未完成,get()方法会阻塞直到任务完成并返回结果。 对于批量返回结果,我们可以使用List<Future<T>>来保存提交的任务,并使用循环遍历List<Future<T>>来获取每个任务的返回结果。例如,我们可以使用如下方式来实现批量返回结果: ```java ExecutorService executorService = Executors.newFixedThreadPool(10); List<Future<Integer>> resultList = new ArrayList<>(); for (int i = 0; i < 10; i++) { Callable<Integer> task = new MyTask(i); Future<Integer> future = executorService.submit(task); resultList.add(future); } List<Integer> results = new ArrayList<>(); for (Future<Integer> future : resultList) { try { Integer result = future.get(); results.add(result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } } executorService.shutdown(); ``` 在上述代码中,我们首先创建了一个包含10个线程的线程池。然后,通过循环提交任务,并将每个任务的Future对象保存到resultList中。最后,通过循环遍历resultList,使用get()方法获取每个任务的返回结果,并将结果保存到results中。 总结来说,ExecutorService线程池可以方便地批量返回任务的执行结果。我们可以通过保存每个任务返回的Future对象,然后通过循环遍历这些Future对象来获取任务的返回结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值