本文整理汇总了C#中SIL.FieldWorks.FDO.FdoCache.PreloadIfMissing方法的典型用法代码示例。如果您正苦于以下问题:C# FdoCache.PreloadIfMissing方法的具体用法?C# FdoCache.PreloadIfMissing怎么用?C# FdoCache.PreloadIfMissing使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SIL.FieldWorks.FDO.FdoCache
的用法示例。
在下文中一共展示了FdoCache.PreloadIfMissing方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PreloadData
/// ------------------------------------------------------------------------------------
/// <summary>
/// Preloads the data used by TE.
/// </summary>
/// <param name="cache">The cache.</param>
/// <param name="splashScreen">The splash screen (can be null).</param>
/// ------------------------------------------------------------------------------------
public static void PreloadData(FdoCache cache, IFwSplashScreen splashScreen)
{
if (splashScreen != null)
{
splashScreen.ProgressBar.SetRange(0, 21); // we call 21 x UpdateProgress() below
splashScreen.ProgressBar.StepSize = 1;
splashScreen.ProgressBar.Position = 0;
}
// Preload all vectors for scripture
// NOTE: splitting up the loading of flids off of the same object type (e.g. StText)
// lets us create a smoother progress bar and doesn't seem to produce any noticable
// performance hit!
cache.PreloadIfMissing(cache.LangProject.TranslatedScriptureOAHvo,
(int)Scripture.ScriptureTags.kflidScriptureBooks, 0);
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)ScrBook.ScrBookTags.kflidSections, "ScrBook");
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)Scripture.ScriptureTags.kflidStyles, "Scripture");
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningAtomicProp((int)ScrSection.ScrSectionTags.kflidHeading, "ScrSection");
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningAtomicProp((int)ScrSection.ScrSectionTags.kflidContent, "ScrSection");
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
new int[] { (int)ScrBook.ScrBookTags.kflidFootnotes });
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
new int[] { (int)ScrBook.ScrBookTags.kflidTitle });
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
new int[] { (int)ScrSection.ScrSectionTags.kflidHeading });
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
new int[] { (int)ScrSection.ScrSectionTags.kflidContent });
UpdateProgress(splashScreen);
cache.LoadAllOfAnOwningVectorProp((int)StTxtPara.StTxtParaTags.kflidTranslations, "StTxtPara");
UpdateProgress(splashScreen);
// also preload all scripture, sections, paragraphs and footnotes
CmObject.LoadDataForFlids(typeof(Scripture), cache, null,
LangProject.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StStyle), cache,
new int[] { (int)LangProject.LangProjectTags.kflidTranslatedScripture },
Scripture.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(ScrSection), cache,
new int[] { (int)Scripture.ScriptureTags.kflidScriptureBooks },
ScrBook.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StFootnote), cache,
new int[] { (int)Scripture.ScriptureTags.kflidScriptureBooks },
ScrBook.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
new int[] { (int)ScrBook.ScrBookTags.kflidFootnotes }, StText.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
new int[] { (int)ScrBook.ScrBookTags.kflidTitle }, StText.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
new int[] { (int)ScrSection.ScrSectionTags.kflidHeading }, StText.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
new int[] { (int)ScrSection.ScrSectionTags.kflidContent }, StText.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
new int[] { (int)CmTranslation.CmTranslationTags.kflidStatus }, CmTranslation.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
new int[] { (int)CmTranslation.CmTranslationTags.kflidTranslation }, CmTranslation.FullViewName);
UpdateProgress(splashScreen);
CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
new int[] { (int)CmTranslation.CmTranslationTags.kflidType }, CmTranslation.FullViewName);
UpdateProgress(splashScreen);
}
示例2: ConcordParagraphs
internal static List<int> ConcordParagraphs(FdoCache cache, int[] hvosStTxtPara, ProgressState progress,
IMatcher matcher, ConcordanceControl.ConcordanceLines line)
{
using (ParagraphParser pp = new ParagraphParser(cache))
{
// this will effectively clear ConcordanceWordforms, which seems overkill, but
// since we are changing the occurrences on those wordforms,
// and also possibly adding many new wordforms, we should just allow RecordLists that use
// ConcordanceWordforms to reload the list.
// (Enhance: is there any way we can make those lists be smart about when they need to reload,
// rather than forcing them to?)
(pp.m_wfi as WordformInventory).SuspendUpdatingConcordanceWordforms = true;
pp.CreateDummyWordforms = true;
pp.m_hvosStTxtPara = hvosStTxtPara;
if (matcher != null)
pp.m_matchingAnnotations = new List<int>();
ParagraphParser.ResetParseSessionDependentStaticData();
// Estimate the number of total number of milestones we'll set.
// Enhance: we could construct a way to set percentage done based upon
// number of texts and paragraphs in each text.
if (progress is MilestoneProgressState)
{
MilestoneProgressState mp = progress as SIL.FieldWorks.Common.Controls.MilestoneProgressState;
for (int i = 0; i < pp.m_hvosStTxtPara.Length; ++i)
{
mp.AddMilestone(1);
}
}
// Preload all the paragraphs.
cache.PreloadIfMissing(hvosStTxtPara, (int)StTxtPara.StTxtParaTags.kflidContents, 0, false);
// Parse each text to load our paragraph and wordform segment annotations.
int cPara = 0;
using (SuppressSubTasks suppressor = new SuppressSubTasks(cache, true))
{
foreach (IStTxtPara para in new FdoObjectSet<IStTxtPara>(cache, pp.m_hvosStTxtPara, false))
{
++cPara;
pp.Parse(para, matcher, line);
progress.SetMilestone();
progress.Breath();
if (pp.m_matchingAnnotations != null &&
pp.m_matchingAnnotations.Count >= ConcordanceControl.MaxConcordanceMatches())
{
MessageBox.Show(String.Format(ITextStrings.ksShowingOnlyTheFirstXXXMatches,
pp.m_matchingAnnotations.Count, cPara, pp.m_hvosStTxtPara.Length),
ITextStrings.ksNotice, MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
}
pp.CleanupLeftoverAnnotations(progress);
}
progress.SetMilestone();
progress.Breath();
(pp.m_wfi as WordformInventory).SuspendUpdatingConcordanceWordforms = false;
return pp.m_matchingAnnotations;
}
}