c#中异步回调函数的异常抛出到哪里?
来源:百度知道 编辑:UC知道 时间:2024/06/09 04:42:30
第一次搞异步C#编程
newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);
其中 Connected 是一个函数。现在 Connected函数里throw了一个异常,请问这个异常被throw到哪里了。我想捕获这个异常应该怎么做?
高手救急!!!谢谢!!!
问题解决再加50分!!
newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);
其中 Connected 是一个函数。现在 Connected函数里throw了一个异常,请问这个异常被throw到哪里了。我想捕获这个异常应该怎么做?
高手救急!!!谢谢!!!
问题解决再加50分!!
其实回调函数 你可以看做在两个不同线程。
当你回调时,开启了另外一个线程执行Connected。
所以如果在Connected中出错时。
会在另一个线程抛出
如果你想捕获的话Connected
必须有将错误的回传的机制
就是说如果
函数里throw了一个异常
就将异常回传给主线程
使用delegate委托可能可以实现您的要求
可以Try来获得异常,但是如果要显示出来,就要想办法传递到主线线程
因为显示一般是主线程来做的
可以手委托,Static变量或写入文件、数据库