处理Task引发的异常
处理方法:线程启动后,使用try-catch,通过wait或者waitall来捕获异常。
单个Task的情况:
System.Threading.Tasks.Task task1 = new System.Threading.Tasks.Task(TaskMethod);
task1.Start();
try
{
task1.Wait();
}
catch(AggregateException ae)
{
Console.WriteLine("task1 异常");
}
多个Task的情况:
System.Threading.Tasks.Task[] tasks = new System.Threading.Tasks.Task[];
tasks[] = new System.Threading.Tasks.Task(TaskMethod);
tasks[].Start();
tasks[] = new System.Threading.Tasks.Task(TaskMethod);
tasks[].Start();
tasks[] = new System.Threading.Tasks.Task(TaskMethod);
tasks[].Start();
try
{
System.Threading.Tasks.Task.WaitAll(tasks);
}
catch(AggregateException ex)
{
foreach (var exception in ex.InnerExceptions)
{
Console.WriteLine(exception.ToString());
}
}
public static void TaskMethod()
{
//略
}
处理Task引发的异常的更多相关文章
- 《C#并发编程经典实例》学习笔记—2.8 处理 async Task 方法的异常
异常处理一直是所有编程语言不可避免需要考虑的问题,C#的异步方法的异常处理和同步方法并无差别,同样要借助 try catch 语句捕获异常. 首先编写一个抛出异常的方法 static async Ta ...
- 选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
异常: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttribute 标记. 只有将调试器附加到该进程才会引发此异常. ...
- 将不确定变为确定~DateTime.MinValue和MaxValue引发的异常
回到目录 问题描述: SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间 概念相关 .Net中的DateTime结 ...
- WPF控件ComboBox 每个Item的ToolTip引发的异常
介绍 首先介绍下要实现的任务.做一个下拉框,当选择每个项的时候将鼠标发在上面显示该项的ToolTip的内容(Image). 实现 Model: public class SkinInfo : Noti ...
- VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决
VS2010 F5调试时出现 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常 两个解决方法:1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上.2) 打开项目属性,选择调试选 ...
- WPF关于“在“System.Windows.Markup.StaticResourceHolder”上提供值时引发了异常。”问题解决办法
在WPF中添加样式,在MainWindow.xaml使用自定义按钮FButton时报错,报错信息如下: "System.Windows.Markup.XamlParseException&q ...
- 关于Cocos的内存管理机制引发一些异常的解决方案
错误:引发了异常: 读取访问权限冲突. this 是 0xDDDDDDDD.或者hero是 0xDDDDDDDD.hero是在GameController里创建的对象 这个的意思是this所指向的内存 ...
- WPF 异常其他信息: “对类型“BaseControl.KImgButton”的构造函数执行符合指定的绑定约束的调用时引发了异常。”,行号为“38”,行位置为“22”。
引发的异常:“System.Windows.Markup.XamlParseException”(位于 PresentationFramework.dll 中) 其他信息: “对类型“BaseCont ...
- c# Clipboard.SetDataObject(bmp1) 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常
c# Clipboard.SetDataObject(bmp1) 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttri ...
随机推荐
- Ubuntu 16.04下安装MySQL5.7
原文链接:https://www.linuxidc.com/Linux/2017-06/144805.htm ps:ubuntu14.04下默认安装的是MySQL5.5 首先执行下面三条命令: sud ...
- qt5.6.2简单操作mysql数据库
1.新建个项目后,需要在.pro工程文件在中添加QT += sql,否则编译会出错: 2.如果出现数据库驱动未加载,则需要把mysql下的libmysql.dll拷贝到D:\Qt5.6.2\5.6\m ...
- Struts2学习(三)
一.值栈 1.OGNL表达式 OGNL的概述:对象图导航语言,是一门功能强大的表达式语言. 2.值栈 值栈的概述(ValueStack):是一个接口,实现类OgnlValueStack.是数据的中转站 ...
- 【SVN】SVN初识
SVN 介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...
- MySQL全备+binlog恢复方法之伪装master【原创】
利用mysql全备 +binlog server恢复方法之伪装master 单实例试验 一.试验环境 10.72.7.40 实例 mysql3306为要恢复的对象,mysql3306的全备+binlo ...
- 题解-bzoj4061 CERC-2012Farm and Factory
Problem Please contact lydsy2012@163.com! 题意概要:给定\(n\)点\(m\)边无向图,设定两个起点为\(1,2\),现要求在图中增加一个点,并将这个点与其他 ...
- PDB文件详解
原文地址:http://blog.csdn.net/feihe0755/article/details/54233714 PDB文件的介绍 PDB(Program Data Base),意即程序的基本 ...
- queue之#单向消息队列
import queue q = queue.Queue() #创建一个单项队列qsize 查看这个单项队列元素的个数empty 与 clear功能是一样的full 是用来查看这个队列是否填满了,队列 ...
- 037_nginx第三方扩展
一.ngx_func_limit_req.conf(nginx限制请求数配置) # limit req zone limit_req_zone $binary_remote_addr $http_us ...
- zabbix添加对haproxy的监控
zabbix添加对haproxy的监控 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy本身提供一个web页面 ...