【发布时间】:2014-03-20 07:38:54
【问题描述】:
我对线程中的异常处理有疑问。我有一个简单的 WCF 服务,它需要一些字节作为输入。此 WCF 服务是从控制台应用程序调用的。
方法片段(MyMethod)
try
{
_service.ImportBytes(bytes);
_service.Close();
}
catch(Exception e)
{
_logger.Error(e.Message);
_service.Abort();
}
如果这是直接从主线程调用的方法,则会发生异常,因为我的服务已关闭(在 IIS 中停止了应用程序)。
但是如果它是从线程调用的,则永远不会发生异常:
var thread = new Thread(() => MyMethod(file);
thread.Start()
由于应该多次调用此方法,因此在foreach loop 中我发现如果我为每个文件创建一个线程。如果一个线程失败,它应该只是记录它并死掉,所以它不会中断应用程序本身。
我应该如何处理线程内的异常?
【问题讨论】:
标签: c# .net multithreading wcf