Когда расположить объект wcf с асинхронным шаблоном

Swift:

1.)

import MapKit

2.) Поскольку создание форматтера стоит дорого, лучше установить его в качестве свойства lazy. Таким образом, вы можете инициализировать средство форматирования только тогда, когда это необходимо, и повторно использовать средство форматирования, а не создавать новое.

lazy var distanceFormatter: MKDistanceFormatter = {
    var tempDistanceFormatter =  MKDistanceFormatter()
    tempDistanceFormatter.unitStyle = .Abbreviated // .abbreviated in Swift 3

    return tempDistanceFormatter
}()

3.)

let distanceString = self.distanceFormatter.stringFromDistance(yourDistance)
5
задан Jimmy 17 June 2009 в 19:55
поделиться

2 ответа

Из блога Ротема Блума: http://caught-in-a-web.blogspot.com/2008/05/best-practices-how-to-dispose-wcf.html

Рекомендации: как избавиться от клиентов WCF

Использование оператора using (Использование в Visual Basic) не рекомендуется для клиентов Dispose WCF. Это потому, что конец оператора using может вызвать исключения, которые могут маскировать другие исключения, о которых вам, возможно, нужно знать.


using (CalculatorClient client = new CalculatorClient())
{
...
} // this line might throw

Console.WriteLine("Hope this code wasn't important, because it might not happen.");

The correct way to do it is:
try
{
    client.Close();
}
catch (CommunicationException)
{
    client.Abort();
}
catch (TimeoutException)
{
    client.Abort();
}
catch
{
     client.Abort();
     throw;
}
5
ответ дан 14 December 2019 в 19:23
поделиться

Поскольку ваша служба не будет обращаться к каким-либо неуправляемым ресурсам, почему бы не выпустить ее из области видимости и не позволить GC делать свое дело?

0
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: