task.result.count ,任务[关闭]

Posted

技术标签:

【中文标题】task.result.count ,任务[关闭]【英文标题】:task.result.count , Task [closed] 【发布时间】:2021-10-26 06:32:25 【问题描述】:

我只是想知道 task.result.length 和直接使用属性有什么区别。

所以我有这个:

int count = 20000;
char charToconcatnate = '1';

Task<string> task = Task.Factory.StartNew(() => ConcatChars(charToconcatnate, count));
Console.WriteLine("IN progress");
task.Wait();

Console.WriteLine("Completed");
Console.WriteLine("The length of the result is:" + task.Result.Length);
Console.Read();


public static string ConcatChars(char charToConcanate, int count)

    string concateneatedString = string.Empty;

    for (int i = 0; i < count; i++)
    
        concateneatedString += charToConcanate;
               
    return concateneatedString;
            

但如果我这样做:

int count = 20000;
char charToconcatnate = '1';

Task task = Task.Factory.StartNew(() => ConcatChars(charToconcatnate, count));
Console.WriteLine("IN progress");
task.Wait();

Console.WriteLine("Completed");
Console.WriteLine("The length of the result is:" + count);
Console.Read();


public static string ConcatChars(char charToConcanate, int count)

    string concateneatedString = string.Empty;

    for (int i = 0; i < count; i++)
    
        concateneatedString += charToConcanate;
               
    return concateneatedString;
            

两者的输出是一样的。

那么有什么区别呢?

【问题讨论】:

没有minimal reproducible example 是不可能的(即知道ConcatChars 做了什么)。 简短的回答是第二个代码块没有意义。 无论ConcatChars 做了什么,输出都是相同的。第一个代码块实际上是检查ConcatChars的输出。这就像把我的孩子送到商店并说“买 144 个鸡蛋”,然后当他们回来时宣布我有 144 个鸡蛋而不看他买了什么 我编辑了我的问题。那为什么还是-1???对不起,但它不是这样工作的 【参考方案1】:

task.Result 是一个 20,000 个字符长的字符串。所以task.Result.Length 返回20000

count 也返回 20000。 (这就是导致 task.Result 首先是 20,000 个字符的原因!)

两个输出是相同的,因为它们为字符串连接获得了相同的值 (20000)。

【讨论】:

以上是关于task.result.count ,任务[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

win10怎么关闭任务栏里的人脉

Android,如何使应用程序的任务不可关闭?只能通过任务杀死关闭

如何让delphi任务管理器失效,让程序无法关闭??

未从任务栏关闭事件正确关闭

win7下怎样关闭任务栏中的进度条,但不关掉窗口预览

如何安排任务在关闭 Windows 时运行