C# 通过UI按钮取消测试脚本

C# 通过UI按钮取消测试脚本,c#,C#,有没有一种简单的方法可以在测试脚本运行时停止它?我正在开发一个启动测试表单的应用程序。在表单中,用户可以进行选择并单击“开始测试”按钮启动脚本。我想添加一个“取消测试”按钮,但不确定如何执行。假设脚本在自己的线程中运行。您可以创建它,确保窗体具有对线程的私有引用。然后在按钮处理程序中,终止线程 请注意,由于您计划取消这样一个线程,因此您应该对其进行设计,以便能够异步终止该线程,或者专门为此目的添加异常处理。web、windows窗体、wpf、silverlight?脚本是什么?javascrip

有没有一种简单的方法可以在测试脚本运行时停止它?我正在开发一个启动测试表单的应用程序。在表单中,用户可以进行选择并单击“开始测试”按钮启动脚本。我想添加一个“取消测试”按钮,但不确定如何执行。

假设脚本在自己的线程中运行。您可以创建它,确保窗体具有对线程的私有引用。然后在按钮处理程序中,终止线程


请注意,由于您计划取消这样一个线程,因此您应该对其进行设计,以便能够异步终止该线程,或者专门为此目的添加异常处理。

web、windows窗体、wpf、silverlight?脚本是什么?javascript、vbscript、IronPython?我在Visual Studio的windows窗体中工作(使用C#),终止一个未设计为协同取消的线程是非常危险的。这可能会产生各种微妙的、难以诊断的、难以修复的、甚至难以发现的、潜在的非常重要的bug。这是一个开发者应该不惜一切代价避免的行为。好建议。我会把它添加到我的答案中。然而,这不是否决我答案的理由。你不能指望我解释正确答案的每一个细节。我的意思是,为什么你要写一个线程,可以取消,但不处理它被取消?谢谢你的帮助@iheanyi@Servy请看我的回答。“忘了提你了。@我的意思是,你的回答是提倡一种有害的解决方案,并且有大量非常重要的问题,而你没有解决这些问题,甚至在回答中没有提到它们。这使得这个答案通常对读者有害,这绝对是一个否决它的理由。你的回答,以及你的评论,意味着你甚至不知道这个答案有多大的问题。