小编enr*_*7mc的帖子

数组排序方法行为

我正在阅读"真正不耐烦的Java SE 8"这本书,在第一章我遇到了下一个练习题:

Arrays.sort方法中的比较器代码是否与调用sort或不同的线程在同一个线程中调用?

我已经在javadoc中搜索了Arrays.sort重载,它接受了一个Comparator参数,但它没有指定任何关于线程的内容.我认为出于性能原因,代码可以在另一个线程中执行,但这只是猜测.

java arrays sorting multithreading

5
推荐指数
1
解决办法
711
查看次数

HttpClient.GetStringAsync和WebClient.DownloadStringAsync之间的区别

我有以下代码

static void Main(string[] args)
{
        string url = "http://www.google.com";
        Console.WriteLine(GetUrl(url).Result); // throws TaskCanceledException
        Console.WriteLine(GetUrl2(url).Result);
    }

    public static Task<string> GetUrl(string url)
    {
        using (var client = new HttpClient())
        {
            return client.GetStringAsync(url);
        }
    }

    public static Task<string> GetUrl2(string url)
    {
        using (var client = new WebClient())
        {
            return client.DownloadStringTaskAsync(url);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取url的字符串,问题是GetUrl方法(使用HttpClient的GetStringAsync)抛出TaskCacelledException,但GetUrl2方法(使用WebClient的DownloadStringTaskAsync)正确运行.这是由于using statement?我错过了什么?

编辑.在这个例子中,我在任务上调用Result,因为这是一个控制台应用程序,我知道最好等待事件处理程序中的结果.

c# webclient asynchttpclient

5
推荐指数
1
解决办法
4960
查看次数

获取IEnumerable LINQ的所有中间元素

我有一个包含整数的数组Y,例如[1 3 2 0 9 8 2],我想选择除了第一个和最后一个[3,2,0,9,8,2]之外的所有元素,以便在进一步的操作中使用它们.这是我目前的做法:

Y.Where((i, x) => i != 0 && i != Y.Length - 1)
Run Code Online (Sandbox Code Playgroud)

还有更好的方法吗?

linq ienumerable

3
推荐指数
1
解决办法
411
查看次数