【发布时间】:2011-06-17 15:16:54
【问题描述】:
我想了解为什么会发生以下行为以及实现我需要的任何方法。
我有一个主线程,它会派出一个后台工作人员来进行一些处理。我有一个后台工作人员完成了偶数处理程序,我在其中监听任何错误。当出现错误时,我会抛出错误并让它浮回主线程。我不想处理错误并显示来自后台工作人员的任何消息。
但是当错误最终被困在主线程中时,我看不到实际的错误消息,但我收到了“目标调用未知”错误。想了解为什么以及如何处理这种情况。
评论: 根据要求添加了源代码示例。添加 WCF 的原因是因为此逻辑是在 WCF 服务场景中编码的。希望现在更有意义。
class ParentClass
{
static void main()
{
try
{
Thread t = new Thread(new ThreadStart(M1));
t.Start();
// ...
// ...
}
catch
{
// here I dont see the error as 'date time conversion'
// but see a generic error as I mentioned
}
}
static void M1()
{
try
{
Convert.ToDateTime("sss");
}
catch (Exception e)
{
// Here I see the error as 'error in date time conversion'
throw;
}
}
}
谢谢, 玛尼
【问题讨论】:
-
您究竟是如何将异常“浮动”到主线程的?
-
WCF 在哪里混在一起?
-
只需几行就可以使这个问题(和答案)变得更好。
-
@Henk 是的,我们真的需要一个“向我们展示代码”按钮
标签: c# .net multithreading exception-handling backgroundworker