在我的 WPF 应用程序中,我有一个使用 BlueBeam Q Server 将文件转换为 PDF 的长期运行过程。当该过程发生时,它不应该冻结,因此编写了以下代码来解决这个问题:
private void btn_convert_Click(object sender, RoutedEventArgs e)
{
thread = new Thread(new ThreadStart(WorkerMethod));
thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Name = "PDF";
thread.Start();
}
WorkerMethod()
{
//code to connect to Q server and conversion goes here
}
现在,当流程开始时,用户可以看到一个取消按钮。当用户按下取消时,我想中止启动的线程。我写的代码如下:
private void btn_cancel_Click(object sender, RoutedEventArgs e)
{
if (thread.Name == "PDF")
thread.Abort();
}
但是线程不会中止并继续该过程。请给我您宝贵的建议。