C#Winform背景线程阻止UI线程

问题描述 投票:0回答:0
在创建第二个线程时,我错过了什么,以便UI线程将继续更新? tia

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); }

为了澄清,ImportValidateAnalyze()是我想在单独线程上运行的长期过程。 在运行时,我希望计时器更新UI线程以表明该应用程序还活着。 除了计时器外,没有UI更新。


c# multithreading winforms user-interface
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.