У меня есть приложение WPF, написанное на C#. Он делает вызов службы WCF, которую я написал. Иногда службе WCF может потребоваться до 20 секунд для возврата (в зависимости от необходимости обновления данных). Я знаю, что могу заставить службы WCF поддерживать асинхронные вызовы, но другое решение, которое, как я думал, будет работать, - это превратить вызов службы WCF в новый поток. Я сделал это с помощью следующего кода:Нить не работает асинхронно
new System.Threading.Thread(
new System.Threading.ThreadStart(
delegate()
{
Action del = delegate()
{
MyService.MyServiceClient ms = new MyService.MyServiceClient();
lblTotalCost.Text = ms.GetTotalCost().ToString("C");
};
this.Dispatcher.BeginInvoke(del);
})).Start();
я это в функции конструктора одного из моих UserControls, после InitializeComponent().
Без него приложение не будет отображаться до завершения вызова службы. Я надеюсь, что добавление этого приведет к тому, что приложение появится сразу и что метка будет заполняться после завершения вызова службы. К моему удивлению, этого не произошло. Приложение по-прежнему не появляется до завершения вызова службы.
Как это необходимо изменить, чтобы оно выполняло то, что я намеревался сделать?
Спасибо!
Намного лучше! Благодаря! Думал, что это может быть так, но не хотел просто реализовывать изменения, не понимая, что происходит или подтверждает, что теория верна. Цените помощь! – Nullqwerty