Поделиться через


UploadOperation Класс

Определение

Выполняет асинхронную операцию отправки. Общие сведения о возможностях фоновой передачи см. в разделе Передача данных в фоновом режиме. Скачайте пример фоновой передачи для примера кода.

public ref class UploadOperation sealed : IBackgroundTransferOperationPriority
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UploadOperation final : IBackgroundTransferOperationPriority
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UploadOperation : IBackgroundTransferOperationPriority
Public NotInheritable Class UploadOperation
Implements IBackgroundTransferOperationPriority
Наследование
Object Platform::Object IInspectable UploadOperation
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)
Возможности приложения
internetClient internetClientServer privateNetworkClientServer

Примеры

В следующем примере показано, как настроить и начать базовую операцию отправки.

using Windows.Foundation; 
using Windows.Networking.BackgroundTransfer;
using Windows.Storage.Pickers;
using Windows.Storage;

private async void StartUpload_Click(object sender, RoutedEventArgs e)
{
    try
    {
        Uri uri = new Uri(serverAddressField.Text.Trim());
        FileOpenPicker picker = new FileOpenPicker();
        picker.FileTypeFilter.Add("*");
        StorageFile file = await picker.PickSingleFileAsync();

        BackgroundUploader uploader = new BackgroundUploader();
        uploader.SetRequestHeader("Filename", file.Name);

        UploadOperation upload = uploader.CreateUpload(uri, file);

        // Attach progress and completion handlers.
        HandleUploadAsync(upload, true);
    }
    catch (Exception ex)
    {
        LogException("Upload Error", ex);
    }
}

Комментарии

После завершения работы приложения приложение должно перечислить все существующие экземпляры UploadOperation при следующем запуске с помощью GetCurrentUploadsAsync. Когда приложение UWP, использующее фоновую передачу, завершается, незавершенные отправки сохраняются в фоновом режиме. Если приложение перезапущено после завершения работы, а эти неполные операции не перечислены и повторно представлены в текущем сеансе, они устареют и по-прежнему занимают ресурсы устройства. Рекомендации по истечении времени ожидания

  • 1.) При установке нового подключения для отправки по протоколу TCP/SSL попытка подключения прерывается, если она не установлена в течение пяти минут.
  • 2.) После установки подключения сообщение HTTP-запроса, которое не получило ответ в течение двух минут, прерывается. При условии, что есть подключение к Интернету, фоновая передача будет повторять отправку до трех раз. В случае, если подключение к Интернету не обнаружено, дополнительные попытки не будут предприниматься до тех пор, пока это не произойдет.

Руководство по отладке

Остановка сеанса отладки в Microsoft Visual Studio сравнима с закрытием приложения; Отправка PUT приостанавливается, а отправка POST прерывается. Даже во время отладки приложение должно перечислить, а затем приостановить, перезапустить или отменить все сохраненные отправки.

Однако если обновления проекта Microsoft Visual Studio, например изменения манифеста приложения, требуют удаления и повторного развертывания приложения для отладки, GetCurrentUploadsAsync не сможет перечислить сохраненные операции, созданные с помощью предыдущего развертывания приложения.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1803 17134 MakeCurrentInTransferGroup
2004 19041 RemoveRequestHeader
2004 19041 SetRequestHeader

Свойства

CostPolicy

Возвращает и задает политику затрат для отправки.

Group

Примечание

Группа может быть изменена или недоступна для выпусков после Windows 8.1. Вместо этого используйте TransferGroup.

Возвращает строковое значение, указывающее группу, к которой относится отправка.

Guid

Это уникальный идентификатор для конкретной операции отправки. Идентификатор GUID, связанный с операцией отправки, не изменяется в течение всего времени отправки.

Method

Возвращает метод, используемый для отправки.

Priority

Возвращает или задает приоритет передачи этой операции отправки в backgroundTransferGroup. Возможные значения определяются backgroundTransferPriority.

Progress

Возвращает текущий ход выполнения операции отправки.

RequestedUri

Возвращает URI для отправки.

SourceFile

Указывает отправляемый файл IStorageFile .

TransferGroup

Возвращает группу, к которой принадлежит эта операция отправки.

Методы

AttachAsync()

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

GetResponseInformation()

Возвращает сведения об ответе.

GetResultStreamAt(UInt64)

Возвращает частично отправленный ответ в указанном расположении.

MakeCurrentInTransferGroup()

Определяет приоритеты операции передачи (и всех последующих операций передачи в той же группе передачи). Вызов этого метода при передаче, которая не принадлежит группе передачи, не оказывает влияния.

RemoveRequestHeader(String)

Используется для удаления заголовка HTTP-запроса.

SetRequestHeader(String, String)

Используется для задания заголовка HTTP-запроса.

StartAsync()

Запускает асинхронную операцию отправки.

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

См. также раздел