繁体   English   中英

gui异步操作模式?

[英]Gui async operations pattern?

我正在为下载管理器设计代码,我想知道异步操作是否有一些众所周知的模式?

我问这个问题是因为我刚刚开始开发自己的模式。

下载单个文件本身是一个异步操作,具有启动,停止,暂停,取消,显示进度和速度的异步操作。 下载一个大文件实际上可以下载许多小文件或部分,因此这是一个使用许多子操作的大操作,该大操作应支持启动,停止,暂停,取消,显示进度和速度,并且与子操作完全一致操作。

下载后,我应该对文件进行哈希处理以对其进行验证,这是另一项操作。

您可以看到我需要一种通用的方式来处理所有这些操作...

public interface IOperation
{
    event EventHandler<StateEventArgs> StartRequested;
    event EventHandler<StateEventArgs> Started;
    event EventHandler<ProgressEventArgs> ProgressChanged;
    event EventHandler<SpeedEventArgs> SpeedChanged;
    event EventHandler<StateEventArgs> PauseRequested;
    event EventHandler<StateEventArgs> Paused;
    event EventHandler<StateEventArgs> ContinueRequested;
    event EventHandler<StateEventArgs> Continued;
    event EventHandler<StateEventArgs> CancelRequested;
    event EventHandler<StateEventArgs> Cancelled;
    event EventHandler<StateEventArgs> Completed;
    event EventHandler<ExceptionEventArgs> WarningErrored;
    event EventHandler<ExceptionEventArgs> FatalErrored;

    OperationState OperationState { get; }
    ISynchronizeInvoke Invokable { get; set; }
    object State { get;set; }

    void StartAsync();
    void StartAsync(params object[] args);
    void StartSync();
    void StartSync(params object[] args);
    void Pause();
    void Continue();
    void Cancel();
}

模型视图控制器(MVC): http : //en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller这是以适当方式设计GUI的模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM