小编Con*_*Man的帖子

如何并行运行任务并选择满足C#中给定条件的第一个结果?

我希望并行运行三个任务.我希望检查完成的第一个任务的结果,并检查以确定结果是否良好.如果是,我取消所有其他任务并返回此结果,如果没有,我将等待下一个完成的任务并检查是否良好,如果是,则执行相同操作.(想想是良好的OutputDataType成员对一些简单的检查).

我继续这个,直到我获得一个结果很好的完成任务,或者所有任务返回的结果都不,在这种情况下我会返回null.

先感谢您.

using System;
using System.Threading;
using System.Threading.Tasks;
namespace myNamespace
{
    class Program
    {
        static void Main()
        {
            InputDataType data = getMyData();
            OutputDataType x = Foo(data);
        }   

        static OutputDataType Foo(InputDataType data)
        {
            Task<OutputDataType> task1 = null, task2 = null, taks3 = null;
            Task<OutPutDataType>[] TaskArray = { task1, task2, task3 };

            task1 = Task<SolutionInterpreters>.Factory.StartNew(() => RunFunc1(data));
            task2 = Task<SolutionInterpreters>.Factory.StartNew(() => RunFunc2(data));
            task3 = Task<SolutionInterpreters>.Factory.StartNew(() => RunFunc3(data));

            /*
            . …
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing wait task-parallel-library

4
推荐指数
1
解决办法
289
查看次数

Presto SQL:使用查询结果出现的时区字符串更改时区不起作用

我通过 Mode Analytics Platform 连接到 AWS Athena 并使用其查询引擎(基于 Presto 0.172 )查询表。该表public.zones将时区信息存储在time_zone我感兴趣的某些区域的列中,存储为varchar.

例如,如果我输入:

SELECT time_zone 
FROM public.zones
LIMIT 4;
Run Code Online (Sandbox Code Playgroud)

我得到(如预期):

time_zone
----------  
US/Pacific 
US/Eastern 
US/Eastern 
US/Eastern 
Run Code Online (Sandbox Code Playgroud)

我可以运行这个测试查询:

SELECT 
  timestamp '2017-06-01 12:34:56.789' AT TIME ZONE 'US/Eastern' AS time_eastern,
  time_zone 
FROM public.zones
LIMIT 4;
Run Code Online (Sandbox Code Playgroud)

我得到(如预期)

time_eastern                        time_zone
----------------------------------  ----------
2017-06-01 08:34:56.789 US/Eastern  US/Pacific
2017-06-01 08:34:56.789 US/Eastern  US/Eastern
2017-06-01 08:34:56.789 US/Eastern  US/Eastern
2017-06-01 08:34:56.789 US/Eastern  US/Eastern
Run Code Online (Sandbox Code Playgroud)

现在,我想'2017-06-01 12:34:56.789'在我从区域表中查询的不同时区中表示相同的时间字符串。我希望运行以下查询。(它在 PostgreSQL 上运行)。

SELECT 
  timestamp '2017-06-01 12:34:56.789' AT TIME …
Run Code Online (Sandbox Code Playgroud)

sql postgresql timezone presto amazon-athena

4
推荐指数
1
解决办法
1万
查看次数