ApplicationDeployment::DownloadFileGroupCompleted Event

 

Occurs on the main application thread when a file download is complete.

Namespace:   System.Deployment.Application
Assembly:  System.Deployment (in System.Deployment.dll)

public:
event DownloadFileGroupCompletedEventHandler^ DownloadFileGroupCompleted {
	void add(DownloadFileGroupCompletedEventHandler^ value);
	void remove(DownloadFileGroupCompletedEventHandler^ value);
}

The DownloadFileGroupCompleted event is called on the main application thread. It is thread safe to call your application's Windows Forms controls directly within this callback.

Check the Error property of the AsyncCompletedEventArgs supplied to this callback. If this property is null, the download was successful; if it is not null, the installation did not succeed, and you can find more information about the installation failure through the Error property.

The following code example downloads a group of Help files in the background. The example requires that you deploy a Windows Forms application that includes a StatusStrip control, and that this control contain 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.");
    }
}

.NET Framework
Available since 2.0
Return to top
Show: