Многопоточное чтение из бд

Мне нужно одновременно выполнить два запроса к 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);
    }
}

Пока это всё что я могу вам предложить исходя из описания задачи

→ Ссылка