【发布时间】:2020-02-10 16:34:10
【问题描述】:
只要线程正在运行一个名为 getAll() 的方法,我就会尝试增加 ProgressBar:
Thread thread = new Thread(new ThreadStart(getAll));
thread.Start();
pbStatus.Visibility = Visibility.Visible;
if (thread.IsAlive)
pbStatus.Value++;
else
pbStatus.Visibility = Visibility.Hidden;
我的 ProgressBar xaml:
<ProgressBar Name="pbStatus" Grid.Row="1" Minimum="0" Maximum="100" Height="10" Visibility="Hidden" />
如果我启动getAll,ProgressBar 会出现,但如果方法完成则不会隐藏。
我尝试使用将进度条设置thread.isAlive 隐藏到false,但似乎没有什么区别。
我的问题是,我不知道getAll 运行了多长时间以及我回来做一些“进展”的时间,所以我认为检查线程是否仍在运行是个好主意增加我的ProgressBar 只要它运行?
【问题讨论】:
-
您尝试过使用
BackgroundWorker吗?另外,你为什么不使用async Task,而是直接使用Thread? -
嗨 Manoj,我正在使用
async Task。谢谢
标签: c# wpf multithreading