我有一个关于多线程应用程序的问题.我使用TaskFactory来启动一个cpu +时间密集型方法.此方法是对SAP的调用,需要很长时间才能完成.用户应该有一个取消任务的选项.目前我正在使用thread.Abort(),但我知道这种方法不是取消它的最佳解决方案.有没有人有替代方案的建议?
代码示例:
Form_LoadAction loadbox = new Form_LoadAction();
Thread threadsapquery = null;
Task.Factory.StartNew<>(() =>
{
t = Thread.CurrentThread;
Thread.sleep(10000000000); //represents time + cpu intensive method
}
loadbox.ShowDialog();
if (loadbox.DialogResult == DialogResult.Abort)
{
t.Abort();
}
Run Code Online (Sandbox Code Playgroud)