В основном, когда мой autocompletetextbox изменяет текст, он обновляет от WCF
службы (с фотографиями), проблема заключается в:Создание задачи для ФОС Async, оленья кожа ждут
Task taskA = new Task(() => listanomes.queryAsync(argumentos, 2, 3, query));
Задача не запускается, как только я начинаю это, поэтому список, который мне нужен, пуст.
private async void tbA_destinatario_TextChanged(object sender, RoutedEventArgs e)
{
await buscaAC();
await fotos();
int i = 0;
foreach (Pessoa temp in listaPessoas)
{
if (listaimgs.Count == 0)
break;
temp.Imagem = listaimgs[i];
i++;
listaPessoas[i] = temp;
}
tbA_destinatario.ItemsSource = listaPessoas;
}
private async Task buscaAC()
{
ServicosLinkedIN.ServicosClient listanomes = new ServicosLinkedIN.ServicosClient();
string query = "select nome,id_user, foto from tbl_conexoes, tbl_users where((tbl_conexoes.id_con2 = @var1 AND id_con1 = id_user) OR (tbl_conexoes.id_con1 = @var1 AND id_con2 = id_user)) AND upper(nome) LIKE upper(@var2) ORDER BY nome LIMIT 0, 5";
List<string> argumentos = new List<string>();
argumentos.Add(Convert.ToString(id));
argumentos.Add("%" + tbA_destinatario.Text + "%");
//listanomes.listautilizadoresAsync(id, tbA_destinatario.Text);
listanomes.queryCompleted += listanomesautocomplete;
Task taskA = new Task(() => listanomes.queryAsync(argumentos, 2, 3, query));
taskA.Start();
await taskA;
}
private async Task fotos()
{
ServicosLinkedIN.ServicosClient dlfotos = new ServicosLinkedIN.ServicosClient();
dlfotos.listadlFotoCompleted += dlfotos_listadlFotoCompleted;
Task taskA = new Task(() => dlfotos.listadlFotoAsync(nomeimgs));
taskA.Start();
await taskA;
}
С помощью 'async-await' используйте только' Task.Run' для запуска задач. В C# методы всегда являются CamelCased, а асинхронные методы должны быть суффиксными ** Async **. Почему вы не используете асинхронные прокси для WCF? –