2009-11-29 2 views
2

Я разрабатываю код для менеджера загрузки, и мне было интересно, есть ли какие-то хорошие шаблоны для асинхронных операций?Gui асинхронный режим работы?

Я спрашиваю об этом, потому что я только начал разрабатывать свой собственный узор.

Загрузка одного файла - это операция async с запуском, остановкой, приостановкой, отменой, отображением прогресса и скорости. Загрузите один большой файл, на самом деле загрузите много мелких файлов или частей, так что это одна большая операция, которая использует множество вспомогательных операций, и большая операция должна поддерживать запуск, остановку, приостановку, отмену, отображение прогресса и скорости с полной согласованностью с подпунктом -операций.

После загрузки я должен сохранить файл, чтобы проверить его, и это еще одна операция.

Вы можете видеть, что я нужен общий способ для обработки всех этих операций ...

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(); 
} 

ответ

0

Model-View-Controller (MVC): http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Это шаблон для разработки графического интерфейса в надлежащее путь.

+0

MVC - хорошая идея в целом, но я не думаю, что это то, что означает DxCK. Ссылка ничего не говорит о написании многопоточного графического интерфейса. –

Смежные вопросы