c#中异步回调函数的异常抛出到哪里?

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:42:30
第一次搞异步C#编程

newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);

其中 Connected 是一个函数。现在 Connected函数里throw了一个异常,请问这个异常被throw到哪里了。我想捕获这个异常应该怎么做?

高手救急!!!谢谢!!!

问题解决再加50分!!

其实回调函数 你可以看做在两个不同线程。
当你回调时,开启了另外一个线程执行Connected。
所以如果在Connected中出错时。
会在另一个线程抛出

如果你想捕获的话Connected
必须有将错误的回传的机制

就是说如果
函数里throw了一个异常
就将异常回传给主线程

使用delegate委托可能可以实现您的要求

可以Try来获得异常,但是如果要显示出来,就要想办法传递到主线线程
因为显示一般是主线程来做的
可以手委托,Static变量或写入文件、数据库