【发布时间】:2018-04-04 04:37:02
【问题描述】:
我有一个 while 循环来检查真/假。我也有 if 块。 if 块从 300 倒数到 0。我想在它是 0 和另外两个地方时杀死线程。
Thread thread = new Thread(() =>{
try {
int countdown = 300;
while (true) {
Thread.Sleep(1000);
paymentService.CheckPayment(pdId);
if (result.Complete == false) {
countdown--;
if (countdown == 1) {
//kill thread
}
}
if (result.Complete == true) {
//kill thread
NavigationService.Navigate(new Uri("Pages/success.xaml", UriKind.Relative));
}
}
}
catch(Exception) {
//kill thread
Application.Current.Shutdown();
}
});
thread.Start();
}
【问题讨论】:
-
有一个类CancellationToken 供线程使用。
-
您应该使用计时器,而不是使用 Sleep(1000) 的 while 循环。
标签: c# multithreading while-loop