本文整理汇总了C#中Ferda.RunTask方法的典型用法代码示例。如果您正苦于以下问题:C# Ferda.RunTask方法的具体用法?C# Ferda.RunTask怎么用?C# Ferda.RunTask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ferda
的用法示例。
在下文中一共展示了Ferda.RunTask方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunTaskOnMetabaseLayer
/// <summary>
/// Runs the task on metabase layer.
/// </summary>
/// <param name="boxModule">The box module.</param>
/// <param name="taskStruct">The task struct.</param>
/// <param name="metabaseLayer">The metabase layer.</param>
public static void RunTaskOnMetabaseLayer(BoxModuleI boxModule, object taskStruct, Ferda.Modules.MetabaseLayer.Task metabaseLayer)
{
//switch generation state to running
SetGenerationInfoStateToRunning(boxModule);
try
{
//Better if value of the input TaskStruct is compared with last (cached) value of TaskStruct. Iff it is the same finish.
//run task
HypothesisStruct[] hypotheses;
GeneratingStruct generationInfo;
metabaseLayer.RunTask(taskStruct, boxModule.StringIceIdentity, out generationInfo, out hypotheses);
//save generation info and result (hypotheses)
SetGenerationInfo(boxModule, generationInfo);
SetHypotheses(boxModule, hypotheses);
}
catch (Ferda.Modules.BadValueError e)
{
throw e;
}
catch (Ferda.Modules.BadParamsError e)
{
throw e;
}
catch (Ferda.Modules.BoxRuntimeError e)
{
throw e;
}
catch (Exception e)
{
SetGenerationInfoStateToFailed(boxModule);
string exText = e.Message;
exText += (e.InnerException == null) ? "" : e.InnerException.Message;
throw Ferda.Modules.Exceptions.BoxRuntimeError(e, boxModule.StringIceIdentity, "Error occured: " + e.Message);
}
GeneratingStruct generationInfoFinalState = GetGenerationInfo(boxModule);
if (generationInfoFinalState.generationState == GenerationStateEnum.Running)
{
generationInfoFinalState.generationState = GenerationStateEnum.Interrupted;
SetGenerationInfo(boxModule, generationInfoFinalState);
}
}