Многопоточное чтение из бд
Мне нужно одновременно выполнить два запроса к ms sql server(select'ы), если какой-либо поток завершит работу раньше, он должен будет подождать до завершения работы второго. С многопоточностью особенно не сталкивался, подскажите,пожалуйста, как это реализовать. Мне даже не столько нужен готовый код, сколько сам алгоритм.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Из того, что я увидел в комментариях, можно написать следующий код (WPF)
private async void Button1_Click(object sender, RoutedEventArgs e)
{
try
{
// подключение к бд
Task<string> task1 = Task.Run(async () => // асинхронный делегат
{
// выполнение первого запроса
string result = ...;
await Task.Delay(1000); // ожидание, если надо
return result;
}
Task<string> task2 = Task.Run(async () =>
{
// выполнение второго запроса
string result = ...;
await Task.Delay(500); // ожидание, если надо
return result;
}
string[] results = await Task.WhenAll(new Task<string>[] { task1, task2 });
TextBlock1.Text = results[0];
TextBlock2.Text = results[1];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Пока это всё что я могу вам предложить исходя из описания задачи