gpt4 book ai didi

screen - 带有 MEF Bootstrap 的 Prism 4 启动画面

转载 作者:行者123 更新时间:2023-12-04 12:59:45 25 4
gpt4 key购买 nike

我有一个使用 MEF Bootstrap 的 prism 4 应用程序。我已经从 Bootstrap 实现了一个启动画面,并希望在模块管理器加载应用程序/模块时向用户提供模块信息(加载时)。

我想我需要订阅模块管理器中的 LoadModuleCompleted 事件。我不能这样做,因为当我使用 MEF Bootstrap 中的容器解析模块管理器时,PRISM 框架调用 OnImportsSatisfied 来加载所有模块。 (这太晚了,因为我想听这个)。

如何显示带有显示模块信息/进度的进度条的启动窗口?

非常感谢!

最佳答案

如果您控制导入到项目中的组合部分,则可以实现 IPartImportsSatisfiedNotification在每一个上,并让他们向某些导入的进度监视器类报告自己的进度:

public interface IProgressMonitor
{
void ReportComposed(Type type);
}

[Export(typeof(IProgressMonitor))]
public class ProgressMonitor : IProgressMonitor
{
public ProgressMonitor()
{
var loadHeuristic = this.GetPreviousLoadProgress();
if (loadHeuristic == null)
{
// Never been loaded before, so it's unclear how long it will take
// Set indeterminate progress bar.
}
else
{
// Use previous load times to estimate progress.
_loadHeuristic = loadHeuristic;
_progress = 0;
}
}

public void ReportComposed(Type type)
{
if (_loadHeuristic != null)
{
this.IncrementProgress();
}
}
}

[Export]
public class FooExport : IPartImportsSatisfiedNotification
{
[Import]
internal IProgressMonitor ProgressMonitor { get; set; }

public void OnImportsSatisfied()
{
this.ProgressMonitor.ReportComposed(typeof(FooExport));
}
}

关于screen - 带有 MEF Bootstrap 的 Prism 4 启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6413001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com