Потоковая передача в visual studio C# winforms
Всем привет,
мне нужен кто-то, кто поможет мне сделать следующее :
private void btnChangeLength_Click(object sender, EventArgs e) { <pre> ComboBox senderComboBox = (ComboBox)sender; if (senderComboBox.SelectedIndex > -1) { spinner.show(); await Task.Run(() => LoadInstitutions()); spinner.hide(); }
//КОД ДЛЯ ГЕНЕРАЦИИ НОВОЙ ДЛИНЫ
}
Мне нужно сделать несколько потоков, поэтому я буду показывать спиннер, пока код не будет готов.
Что я уже пробовал:
private void LoadInstitutions() { this.Invoke((MethodInvoker)delegate () { string selectedValue = cmbEnviroment.SelectedItem.ToString().Trim(); ConnectionClass connectionClass = new ConnectionClass(); connectionClass.Connection(selectedValue); //more code to do
Может ли кто-нибудь помочь мне сделать резьбу правильно ?
Richard MacCutchan
Как вы думаете, зачем вам нужна резьба?
lw@zi
Вам нужно показать код, который вы пробовали. Очень маловероятно, что кто-то будет делать вашу работу здесь за вас.
Sigmond Gatt
я сделаю это через минуту.
lw@zi
Теперь вы показываете spinner на экране в потоке пользовательского интерфейса до тех пор, пока обработка не будет завершена. Это означает, что пользователь не сможет выполнить никаких дальнейших действий до тех пор, пока обработка не будет завершена. Если это так, то вам вообще не нужна резьба. Кроме того, как может отправитель по combobox, когда обработчик событий появляется для нажатия кнопки?
Richard MacCutchan
Используйте индикатор выполнения, он гораздо более удобен для пользователя.
Sigmond Gatt
я постараюсь это сделать :) спасибо