DeploymentProgressChangedEventArgs Класс

Определение

Представляет состояние хода выполнения асинхронной операции.Represents progress data reported in an asynchronous operation.

public ref class DeploymentProgressChangedEventArgs : System::ComponentModel::ProgressChangedEventArgs
public class DeploymentProgressChangedEventArgs : System.ComponentModel.ProgressChangedEventArgs
type DeploymentProgressChangedEventArgs = class
    inherit ProgressChangedEventArgs
Public Class DeploymentProgressChangedEventArgs
Inherits ProgressChangedEventArgs
Наследование
DeploymentProgressChangedEventArgs

Примеры

В следующем примере кода загружается файловая HelpFilesгруппа с именем и отображается ход выполнения загрузки в строке состояния.The following code example downloads a file group named HelpFiles, and displays download progress in a status bar. В этом примере требуется развернуть Windows Forms приложение, а в главной форме StatusStrip — элемент управления ToolStripStatusLabel и элемент управления с именем downloadStatus.This example requires that you deploy a Windows Forms application, and that your main form has a StatusStrip control, and a ToolStripStatusLabel control named downloadStatus.

void LaunchAppUpdate()
{
    if (ApplicationDeployment::IsNetworkDeployed)
    {
        ApplicationDeployment^ ad =
            ApplicationDeployment::CurrentDeployment;
        ad->UpdateCompleted +=
            gcnew AsyncCompletedEventHandler(this,
            &Form1::LaunchAppUpdate_UpdateCompleted);

        ad->UpdateAsync();
    }
}

void LaunchAppUpdate_UpdateCompleted(Object^ sender,
    AsyncCompletedEventArgs^ e)
{
    if (!e->Cancelled)
    {
        if (nullptr != e->Error)
        {
            System::Windows::Forms::DialogResult dr =
                MessageBox::Show(
                "The application has been updated. Restart?",
                "Restart Application",
                MessageBoxButtons::OKCancel);
            if (System::Windows::Forms::DialogResult::OK == dr)
            {
                Application::Restart();
            }
        }
        else
        {
            // Replace with your own error reporting or logging.
            MessageBox::Show(
                "The application encountered an error in " +
                "downloading the latest update. Error: {0}",
                e->Error->Message);
        }
    }
    else
    {
        // Replace with your own error reporting or logging.
        MessageBox::Show(
            "The update of the application's latest version was " +
            "cancelled.");
    }
}
private void DownloadFileGroupAsync(string fileGroup)
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;

        try
        {
            if (!deployment.IsFileGroupDownloaded(fileGroup))
            {
                deployment.DownloadFileGroupProgressChanged += new DeploymentProgressChangedEventHandler(deployment_DownloadFileGroupProgressChanged);
                deployment.DownloadFileGroupCompleted += new DownloadFileGroupCompletedEventHandler(deployment_DownloadFileGroupCompleted);

                deployment.DownloadFileGroupAsync(fileGroup);
            }
        }
        catch (InvalidOperationException ioe)
        {
            MessageBox.Show("This application is not a ClickOnce application. Error: " + ioe.Message);
            return;
        }
    }
}

void deployment_DownloadFileGroupProgressChanged(object sender, DeploymentProgressChangedEventArgs e)
{
    downloadStatus.Text = String.Format("Downloading file group {0}; {1:D}K of {2:D}K completed.", e.Group, e.BytesCompleted / 1024, e.BytesTotal / 1024);               
}

void deployment_DownloadFileGroupCompleted(object sender, DownloadFileGroupCompletedEventArgs e)
{
    if (e.Error != null)
    {
        downloadStatus.Text = "Could not download files. Will try again later.";
        return;
    }
    else if (e.Cancelled)
    {
        downloadStatus.Text = "The file download has been cancelled.";
        return;
    }

    downloadStatus.Text = String.Format("Download of file group {0} complete.", e.Group);
}
Dim WithEvents ADDownloadHelpFiles As ApplicationDeployment

Private Sub DownloadHelpFiles(ByVal GroupName As String)
    If (ApplicationDeployment.IsNetworkDeployed) Then
        ADDownloadHelpFiles = ApplicationDeployment.CurrentDeployment

        If ADDownloadHelpFiles.IsFirstRun Then
            Try
                If Not ADDownloadHelpFiles.IsFileGroupDownloaded(GroupName) Then
                    ADDownloadHelpFiles.DownloadFileGroupAsync(GroupName)
                End If
            Catch ioe As InvalidOperationException
                MessageBox.Show("This application is not a ClickOnce application.")
                Return
            End Try
        End If
    End If
End Sub

Private Sub ADDownloadHelpFiles_DownloadFileGroupProgressChanged(ByVal sender As Object, ByVal e As DeploymentProgressChangedEventArgs) Handles ADDownloadHelpFiles.DownloadFileGroupProgressChanged
    DownloadStatus.Text = String.Format("Downloading file group {0}; {1:D}K of {2:D}K completed.", e.Group, e.BytesCompleted / 1024, e.BytesTotal / 1024)
End Sub

Private Sub ADDownloadHelpFiles_DownloadFileGroupCompleted(ByVal sender As Object, ByVal e As DownloadFileGroupCompletedEventArgs) Handles ADDownloadHelpFiles.DownloadFileGroupCompleted
    DownloadStatus.Text = String.Format("Download of file group {0} complete.", e.Group)
End Sub

Комментарии

Этот класс содержит свойства, описывающие ход выполнения CheckForUpdateProgressChangedдля DownloadFileGroupProgressChangedсобытий, UpdateProgressChanged и.This class contains properties that describe progress for the CheckForUpdateProgressChanged, DownloadFileGroupProgressChanged, and UpdateProgressChanged events. Не все свойства в этом классе применяются к каждому событию.Not every property in this class applies to each event.

BytesCompletedи BytesTotal представляют общее число байтов, скачанных на дату и общее количество байтов в операции загрузки соответственно; они применяются ко всем трем событиям.BytesCompleted and BytesTotal represent the total number of bytes downloaded to date and the total number of bytes in the download operation, respectively; they apply to all three events. Groupназывает файловую группу, соответствующую текущему DownloadFileGroupProgressChanged событию, и State отражает текущую стадию операции загрузки.Group names the file group corresponding to the current DownloadFileGroupProgressChanged event, and State reflects the current stage of the download operation.

Свойства

BytesCompleted

Возвращает общее количество байтов для данной операции загрузки.Gets the number of bytes already downloaded by this operation.

BytesTotal

Возвращает общее количество байтов операции загрузки.Gets the total number of bytes in the download operation.

Group

Возвращает имя загруженной группы файлов.Gets the name of the file group being downloaded.

ProgressPercentage

Возвращает процент выполнения асинхронной задачи.Gets the asynchronous task progress percentage.

(Унаследовано от ProgressChangedEventArgs)
State

Возвращает действие, которое процесс выполняет в данный момент.Gets the action that the process is currently executing.

UserState

Возвращает уникальное пользовательское состояние.Gets a unique user state.

(Унаследовано от ProgressChangedEventArgs)

Методы

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Дополнительно