c# – 内置异常处理的任务?
发布时间:2020-12-15 20:59:41 所属栏目:百科 来源:网络整理
导读:使用任务时,您必须特别注意处理异常,这是一个示例: class Program{ static void Main(string[] args) { Taskint task = new Taskint(Test); task.ContinueWith(ExceptionHandler,TaskContinuationOptions.OnlyOnFaulted); task.Start(); Console.ReadLine()
使用任务时,您必须特别注意处理异常,这是一个示例:
class Program { static void Main(string[] args) { Task<int> task = new Task<int>(Test); task.ContinueWith(ExceptionHandler,TaskContinuationOptions.OnlyOnFaulted); task.Start(); Console.ReadLine(); } static int Test() { throw new Exception(); } static void ExceptionHandler(Task<int> task) { var exception = task.Exception; Console.WriteLine(exception); } } 从here起 我的问题是,是否有任何方法可以创建一个自定义任务来处理(登录服务)所有异常而无需由开发人员手动说明它?某种帮助遗产. 解决方法
您可以创建MyLoggingTask作为Task的子类,实现与您相关的构造函数,或者所有这些构造函数都是安全的(我在.NET Framework 4.5中看到其中的8个),并覆盖Start()方法.
然后用MyLoggingTask替换每个Task用法对子类命名空间的引用,或者使用Task = Your.NameSpace.MyLoggingTask最小化’manual’方面,创建一个实际上属于你自己的类的Task别名. 作为替代方案,您可以创建一个扩展方法public static StartWithLogging< T>(此任务< T>任务)来处理ContinueWith.然后用StartWithLogging()引用扩展类的命名空间替换每个Start()调用. 我担心没有更简单的选择,并且总是需要一定程度的“手动说明”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |