Вам лучше иметь переменную экземпляра для службы. Создание и удаление службы для каждого вызова создает много ненужных накладных расходов. Просто создайте переменную и вызовите методы, нет необходимости открывать ее, так как это будет , автоматически начиная с бета 2 (см. Раздел # 5).
Что касается закрытия, попытка закрыть его для очистки, вероятно, зависит от структуры вашего приложения. Если при закрытии UserControl все приложение закрывается (пользователь закрыл браузер), то вам, вероятно, не нужно явно закрывать его, поскольку все будет очищено после закрытия хоста Silverlight. Однако, если вы создаете множество этих пользовательских элементов управления и закрываете их, оставляя приложение открытым, то вы можете захотеть создать какой-то метод close для вашего элемента управления, который мог бы очиститься путем вызова CloseAsync.
Если все пользовательские элементы управления используют одну и ту же службу, вы можете просто создать один класс-оболочку службы, который будет использоваться всеми элементами управления, которые будут обрабатывать вызов службы. Это избавит вас от необходимости закрывать службы при разгрузке элементов управления.