4

私は以下から応答を得るために以下のコードを持っていますHTTP GET

private void ResponseReady(IAsyncResult aResult)
{
    HttpWebRequest request = aResult.AsyncState as HttpWebRequest;

    try
    {
        this.Dispatcher.BeginInvoke(delegate()
        {
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(aResult);

接続がない場合の問題は、response列で停止します。例外をキャッチしません。のせいDispatcher.Invokeですか?

4

2 に答える 2

5

BeginInvokeの呼び出しはデリゲート内のコードを実行せず、ThreadPoolスレッドで実行されるようにキューに入れるため、例外はキャッチされません。例外が発生した場合、例外処理は行われません。ここでInvokeまたはBeginInvokeを使用するつもりでしたか?いずれにせよ、デリゲートに例外処理を配置することで、問題を処理する必要があります。

于 2013-01-30T03:08:41.510 に答える
3

BeginInvokeデリゲート内のコードは別のスレッドで実行されるため、そこで別のtry/catchを作成する必要があります。

于 2013-01-30T03:06:23.780 に答える