Gui异步操作模式?
问题描述:
我正在设计一个下载管理器的代码,我想知道是否有一些已知的异步操作模式?Gui异步操作模式?
我在问这是因为我刚开始开发自己的模式。
下载单个文件本身是一个异步操作,具有开始,停止,暂停,取消,显示进度和速度。 下载一个大文件实际上可以下载很多小文件或部件,所以这是一个使用多个子操作的大操作,大操作应该支持启动,停止,暂停,取消,显示进度和速度,并且与子文件完全一致-operations。
下载后,我应该散列文件来验证它,这是另一种操作。
你可以看到,我需要处理所有这些操作的一般方法...
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模式办法。
MVC是一个很好的主意,但我不认为这就是DxCK的含义。该链接没有提到编写多线程GUI的任何内容。 – 2011-06-02 11:39:22