C# 如何在windows应用程序中为asyanc任务中的文本框添加值

C# 如何在windows应用程序中为asyanc任务中的文本框添加值,c#,winforms,windows-applications,C#,Winforms,Windows Applications,您好,我是新来赢取表格,我想在表格的文本框中显示下面任务的进度,但我无法这样做 // Create progress printing and querying tasks Task progressPrintTask = new Task(() => { IJob jobQuery = null; do { var progressContext = new CloudMediaContext(_

您好,我是新来赢取表格,我想在表格的文本框中显示下面任务的进度,但我无法这样做

 // Create progress printing and querying tasks
    Task progressPrintTask = new Task(() =>
    {

        IJob jobQuery = null;
        do
        {
            var progressContext = new CloudMediaContext(_accountName, _accountKey);
            jobQuery = progressContext.Jobs.Where(j => j.Id == job.Id).First();
           // AppendTextBox("Indexer Job started");
           //  textBox2.AppendText(string.Format("{0}\t{1}\t{2}", DateTime.Now, jobQuery.State, jobQuery.Tasks[0].Progress));
            //  Console.WriteLine(string.Format("{0}\t{1}\t{2}", DateTime.Now, jobQuery.State, jobQuery.Tasks[0].Progress));
            Thread.Sleep(10000);
        }
        while (jobQuery.State != JobState.Finished &&
               jobQuery.State != JobState.Error &&
               jobQuery.State != JobState.Canceled);
    });

    progressPrintTask.Start();
请查看屏幕截图了解更多详细信息


请帮助

我猜您缺少一个调用:

// Create progress printing and querying tasks
Task progressPrintTask = new Task(() =>
    {

        IJob jobQuery = null;
        do
        {
            var progressContext = new CloudMediaContext(_accountName, _accountKey);
            jobQuery = progressContext.Jobs.Where(j => j.Id == job.Id).First();
            textBox2.Invoke(() => textBox2.AppendText(string.Format("{0}\t{1}\t{2}", DateTime.Now, jobQuery.State, jobQuery.Tasks[0].Progress)));
            Thread.Sleep(10000);
        }
        while (jobQuery.State != JobState.Finished &&
               jobQuery.State != JobState.Error &&
               jobQuery.State != JobState.Canceled);
    });
progressPrintTask.Start();

我猜您缺少一个调用:

// Create progress printing and querying tasks
Task progressPrintTask = new Task(() =>
    {

        IJob jobQuery = null;
        do
        {
            var progressContext = new CloudMediaContext(_accountName, _accountKey);
            jobQuery = progressContext.Jobs.Where(j => j.Id == job.Id).First();
            textBox2.Invoke(() => textBox2.AppendText(string.Format("{0}\t{1}\t{2}", DateTime.Now, jobQuery.State, jobQuery.Tasks[0].Progress)));
            Thread.Sleep(10000);
        }
        while (jobQuery.State != JobState.Finished &&
               jobQuery.State != JobState.Error &&
               jobQuery.State != JobState.Canceled);
    });
progressPrintTask.Start();

但是我做不到
你尝试了什么?为什么不起作用?异常?@ChrFin我正在Console.write中获取值,但当我在文本框中分配该值时,将不显示任何内容。是否可能在调试输出中获取异常?您是否正在等待
progressPrintTask
任务?
但我无法执行该任务
您尝试了什么?为什么不起作用?异常?@ChrFin我正在Console.write中获取值,但当我在文本框中分配该值时,将不显示任何内容。是否可能在调试输出中获取异常?您是否正在等待
progressPrintTask
somehwhere?使用此时我的应用程序冻结使用此时我的应用程序冻结