如果之前有人问过类似的问题,我很抱歉。我有一个简单的 GUI 应用程序,可以将一些文件上传到服务器。我把上传工作放到一个单独的线程中。当用户想要退出应用程序时,会设置一个事件通知线程正常退出。然后 UI 线程将等待它。我用来中止线程的代码如下:-
if (mUploadThread != null) {
if (mStopUploadEvent.WaitOne(0, true)) {
string message = @"A normal cancellation may take a couple of minutes. Are you sure you want forcibly abort?";
string caption = @"Warning";
if (DialogResult.Yes == MessageBox.Show(message, caption, MessageBoxButtons.YesNo)) {
mUploadThread.Abort();
}
} else {
mStopUploadEvent.Set();
}
do {
Application.DoEvents();
} while (!mUploadThread.Join(1000));
}
如果用户愿意,我想在这里终止工作线程。但是 abort() 方法不起作用。任何建议表示赞赏。