2013-03-21 3 views
0

в коде ниже (wcf server), если клиент отключается, я хочу, чтобы код продолжал обрабатывать. Прямо сейчас он переходит к выписке и прекращает обработку. Цель обратных вызовов в конечном итоге будет обновлять клиента при прогрессе запроса, но клиент может отключиться, если он захочет на любом этапе, и я хочу, чтобы обработка продолжалась.callback continue

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) 
      { 

      } 

     } 
+1

Вы программируете Java на C#, вы должны использовать делегаты, а не интерфейсы. – antonijn

ответ

2

Если я правильно вас понять, все, что вам нужно сделать, это ошибку ловушки связи с вашего обратным вызовом вызова и игнорировать их - вы, вероятно, хотите поставить обратный вызов в своем собственном методе, так что вы дон Не нужно повторять логику обработки исключений для каждого сайта уведомления о прогрессе.

+0

Большое спасибо - это сработало – user1438082