0

以下のコード (wcf サーバー) では、クライアントが切断された場合、コードの処理を続行します。現在、catch ステートメントにジャンプして処理を停止しています。コールバックの目的は、最終的にリクエストの進行状況でクライアントを更新することですが、クライアントは任意の段階で必要に応じて切断でき、処理を続行したいです。

   public void ChatToServer(string texttoServer) // send some text to the server
        {
            Logging.Write_To_Log_File("Entry", MethodBase.GetCurrentMethod().Name, "", "", "", 1);

            try
            {

                Thread.Sleep(5000);
                IMyContractCallBack callback = OperationContext.Current.GetCallbackChannel<IMyContractCallBack>();
                callback.callbacktoServer("Progress is 20% complete");
                // Some extremely important processing
                ....
                callback.callbacktoServer("Progress is 40% complete");
                // Some extremely important processing
                ....
                callback.callbacktoServer("Progress is 60% complete");
                // Some extremely important processing
                ....
                callback.callbacktoServer("Progress is 80% complete");    

                // Some extremely important processing
                ....
                callback.callbacktoServer("Progress is 100% complete");                                   
            }
            catch (Exception ex)
            {

            }

        }
4

1 に答える 1

2

私の理解が正しければ、コールバック呼び出しからの通信エラーをトラップして無視するだけで済みます。例外を繰り返す必要がないように、コールバック呼び出しを独自のメソッドに配置することをお勧めします。各進捗通知サイトの処理ロジック。

于 2013-03-21T18:36:20.697 に答える