в приложении WPF Я загружаю список бизнес-объектов с помощью WCF в список.
Я хочу загрузить его в другой поток и отобразить окно индикатора выполнения.
Но как?Мне нужно вызвать службу WCF во втором потоке и вернуть ее возвращаемое значение в первый (UI) поток.И это точка, которую я не знаю.Как вернуть?Или какой должен быть правильный рабочий процесс вызова данных в фоновом режиме и отображения прогресса?
Теперь я:
- показать окно прогресса
- создать новый поток и вызвать службу WCF
- вернуть значения <- я не знаю <br>- закрыть окно
Но - этот рабочий процесс прав?
Я не хочу использовать фонового работника, потому что я могу вызватьмного разных сервисов WCF, не только один, который я мог бы записать в метод DoWork.
У меня есть класс WCFClient, в котором я вызываю все нужные мне сервисы.Вот один из методов (все методы одинаковы, только вызовы разных служб):
public class Client
{
public List<BusinessDto> GetBusinesses(int userID)
{
OnConnecting();
ServiceClient client = null;
BusinessDto[] dtos = null;
try
{
client = new ServiceClient();
dtos = client.GetBusinesses(userID);
}
catch
{
MessageBox.Show(Properties.Resources.ConnectionNotSucessful, Properties.Resources.ApplicationName, MessageBoxButton.OK, MessageBoxImage.Error);
}
finally
{
if (client != null) client.Close();
OnClosing();
}
return dtos.ToList();
}
}
Я ловлю Onconnecting и OnClosing события WCFClientи открытие и закрытие нового окна с помощью индикатора выполнения.
Но я не вызываю службы WCF в новом потоке, потому что не знаю как.
Спасибо, я пытаюсь это сделатьбезуспешно в течение двух дней.