C# Winform Founde Thread блокирует поток пользовательского интерфейсаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# Winform Founde Thread блокирует поток пользовательского интерфейса

Сообщение Anonymous »

У меня есть форма с кнопкой, которая запускает метод. В этом методе делаются некоторые обновления пользовательского интерфейса, а затем называется новый метод, который создает и запускает новый поток для выполнения. Наконец, работает другой метод, который делает обновления очистки и экрана. Сторонний метод может занять до десяти минут - отсюда и второй поток. В начале запускается таймер, который должен обновить истеченные секунды на экране, а затем остановить. (Timer_start () и timer_stop ()) < /p>
При запуске все работает, за исключением того, что дисплей времени не происходит до завершения второго потока, а затем таймер не останавливается до закрытия формы. Tia. < /P>
private void btnAction_Click(object sender, EventArgs e)
{
bool Analyze = (cboAnalyzePriceList.SelectedIndex == 0 ? true : false);
bool Preview = (cboPreviewOrSave.SelectedIndex == 0 ? true : false);

Timer_Start();
(rowCnt, FileMatch, ImportId, srcAnalysis) = ProcessActionButton(Analyze, Preview);

PreviewOrSave(Preview);
}

private (int, bool, string, DataTable) ProcessActionButton(bool Analyze, bool Preview)
{
SetupProcessForm(Analyze, Preview);

Thread thProcess = new Thread(() =>
{ (rowCnt, FileMatch, ImportId, srcAnalysis) = mtdUpdateData.ImportValidateAnalyze(ImportId, PriceListFile, MappingName, Analyze, Preview); } );
thProcess.Start();

(rowCnt, ImportId) = FinalizeProcessForm(rowCnt, FileMatch, srcAnalysis);
tbRowCount_Hdr.Text = rowCnt.ToString("N0");
tbImportId_Hdr.Text = ImportId;

Timer_Stop();
return (rowCnt, FileMatch, ImportId, srcAnalysis);
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... -ui-thread
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»