# Abort time evaluation in package and report the current result

GROUPS:
 This is the same question I asked in StackExchange, I am really trying to find a solution :) https://mathematica.stackexchange.com/questions/171247/abort-time-evaluation-in-package-and-report-the-current-resultI am doing a time-dependent calculation and I would like to have the option to stop the calculation but obtain the current (last) result. Generally, I do some groundwork as what can be done before asking a question but this time I don't even know where to start. I wrote the "toy" version of my problem.Here is the user interface that I would like to insert the "ABORT" button. and the "time-dependent" package. Get[FileNameJoin[{NotebookDirectory[EvaluationNotebook[]], "AbortCal.wl"}]]; Panel[Framed[ DynamicModule[{tfinal = 100}, Column[{Style["Compute", "Subsection"] , Row[{Style["Final Time ", 12, Blue], InputField[Dynamic[tfinal]]}, Spacer[5]], Button[Style["Compute", Green, Bold], Res = AbortCalMainAbortCal[tfinal]; Plt = Res[[1]]; a = Res[[2]];, Method -> "Queued"], Row[{Button["Stop", Interrupt[]; Print[Dynamic[a]]]}], Row[{Style["Plot ", 12, Red], InputField[Dynamic[Plt], FieldSize -> {50, 15}, Enabled -> False, BaseStyle -> {12}]}, Spacer[15]] }], Initialization :> ( Get[FileNameJoin[{NotebookDirectory[EvaluationNotebook[]], "AbortCal.wl"}]];)], Background -> Lighter[Gray, .6]]] And the package is BeginPackage["AbortCal"]; SetOptions[$FrontEnd, "ClearEvaluationQueueOnKernelQuit" -> False] MainAbortCal::usage=" "; Begin["Private"];$MaxExtraPrecision=\[Infinity]; MainAbortCal[tfinal_]:=Module[{a}, a=ConstantArray[1, {50, 50}]; Do[a=a+1; Pause[2];,{i,tfinal}]; plta=ListPlot3D[a,ImageSize->Full]; Return[{plta,a}]]; End[]; SetAttributes[{MainAbortCal},{ReadProtected,Protected,Locked}]; SetOptions[\$FrontEnd, "ClearEvaluationQueueOnKernelQuit" -> False] EndPackage[]; Ideally I would like to get the plot but I would be happy even if I get the current "a" matrix. Attachments: