首页 新闻 会员 周边

求解关于Task延续任务获取异常的问题

0
[已关闭问题] 关闭于 2016-02-15 12:56

源码:

private void button1_Click(object sender, EventArgs e)
        {
            Task t = new Task(() =>
            {
                foreach (string item in urls)
                {
                    wb_browser.Url = new Uri(item);
                    while (!alreadyGetUrl) { }//等待
                    alreadyGetUrl = false;
                }
            });
            t.ContinueWith(task =>
            {
                if (task.Status == TaskStatus.Faulted)
                {
                    textBox1.Invoke(new Action(() =>
                    {
                        textBox1.AppendText(task.Exception.InnerException.Message + "\r\n");
                    }));
                }
            }, TaskContinuationOptions.OnlyOnFaulted);
            t.Start();
        }

红色的这一行会报出一个异常,问题是为什么用于输出异常的延续任务只在调试的时候起作用,不调试运行却不起作用??

北在北方的主页 北在北方 | 初学一级 | 园豆:180
提问于:2016-01-31 09:50
< >
分享
所有回答(1)
0

你这是一个异步任务,可以理解为在一个独立线程中执行的任务。

你这个错误应该是不能再其他线程操作UI线程的控件吧。

从其他线程操作UI线程中的控件要么用委托要么用Invoke方法。

埋头前进的码农 | 园豆:118 (初学一级) | 2016-02-01 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册