Раньше я использовал BackgroundWorker в приложении Windows Form.
Для моего нового упражнения мне нужно использовать методы async внутри работника, и я немного запутался. об этом.
Это моя структура кода. В событии загрузки формы я создаю объект BackgroundWorker и события настройки
private void fMain_Load( object sender, EventArgs e ) {
bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler( bw_DoWork );
bw.ProgressChanged += new ProgressChangedEventHandler( bw_ProgressChanged );
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler( bw_RunWorkerCompleted );
}
Когда пользователь нажимает кнопку, я запускаю рабочий процесс
private void btnGenerate_Click( object sender, EventArgs e ) {
Settings settings = new Settings();
pbCounter.Visible = true;
btnGenerate.Enabled = false;
bw.RunWorkerAsync( settings );
}
А это рабочий код
private async void bw_DoWork( object sender, DoWorkEventArgs e ) {
try {
for ( int ix = 1; i
Подробнее здесь: https://stackoverflow.com/questions/342 ... nc-methods
BackgroundWorker, использующий асинхронные методы HttpClient. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение