IAsyncAction Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma ação assíncrona. Esse é o tipo de retorno para muitos métodos assíncronos do WinRT (Windows Runtime) que não têm um objeto de resultado e não relatam o progresso contínuo.
public interface class IAsyncAction : IAsyncInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(1516535814, 33850, 19881, 134, 91, 157, 38, 229, 223, 173, 123)]
struct IAsyncAction : IAsyncInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(1516535814, 33850, 19881, 134, 91, 157, 38, 229, 223, 173, 123)]
public interface IAsyncAction : IAsyncInfo
Public Interface IAsyncAction
Implements IAsyncInfo
- Derivado
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.FoundationContract (introduzida na v1.0)
|
Comentários
IAsyncAction
é o tipo de retorno para todos os métodos assíncronos do WinRT que não comunicam um objeto de resultado ou progresso contínuo. Isso constitui mais de 300 APIs diferentes do WinRT. AS APIs que relatam o progresso, mas não têm um resultado, usam outra interface, IAsyncActionWithProgress.
Ao usar métodos que retornam IAsyncAction
no código do aplicativo, você geralmente não acessa o valor retornado IAsyncAction
diretamente. Isso ocorre porque você quase sempre usa a sintaxe aguardada específica do idioma. Nesse caso, o valor de retorno aparente do método é nulo. Para obter mais informações, consulte de programação assíncrona ou um dos guias específicos da linguagem para programação assíncrona do WinRT (Chamar APIs assíncronas em C# ou visual Basic, C++ , JavaScript).
IAsyncAction
também é um tipo de entrada para algumas APIs de utilitário de cenário avançado, como CoreDispatcher.RunAsync e ThreadPool.RunAsync.
Não é comum usar IAsyncAction
diretamente, mesmo que você não use uma sintaxe aguardável específica do idioma. Cada um dos idiomas tem pontos de extensão que geralmente são mais fáceis de usar do que a interface WinRT. O JavaScript tem WinJS.Promise e a sintaxe then
/done
. O .NET tem o método de extensão IAsyncAction
pode ser considerada infraestrutura em nível de runtime, que cada um dos idiomas usa como uma estrutura para dar suporte a modelos de programação assíncronos ou sintaxe aguardados à sua maneira.
Em vez de usar IAsyncAction
, alguns métodos assíncronos do WinRT usam tipos de ação personalizados (que podem ter "Operação" em vez de "Ação" em seu nome). Por exemplo, SignOutUserOperation é um tipo WinRT que implementa IAsyncAction
. O tipo de
Se você tiver um método que retorne um
Funções de extensão C++/WinRT
Nota
Existem funções de extensão nos tipos de projeção C++/WinRT para determinadas APIs do WinRT. Por exemplo, winrt::Windows::Foundation::IAsyncAction
é o tipo de projeção C++/WinRT para IAsyncAction
. As funções de extensão não fazem parte da superfície da ABI (interface binária do aplicativo) dos tipos winRT reais, portanto, elas não são listadas como membros das APIs do WinRT. Mas você pode chamá-los de dentro de qualquer projeto C++/WinRT. Consulte funções C++/WinRT que estendem as APIs do Windows Runtime.
void get() const;
Aguarda de forma síncrona a conclusão da ação. Gera uma exceção correspondente se a ação é cancelada ou insere um estado de erro. Você não deve chamá-lo de um apartamento de thread único. Para obter mais informações e exemplos de código mostrando como chamar get
, consulte Gravar umde coroutina.
AsyncStatus wait_for(TimeSpan const& timeout) const;
Aguarda de forma síncrona para que a ação seja concluída ou pelo tempo limite especificado. Retorna o estado do IAsyncAction
ou AsyncStatus::Started se o tempo limite tiver decorrido. Se a ação não atingiu o tempo limite, chame GetResults para obter os resultados da ação. Para obter mais informações e exemplos de código mostrando como chamar wait_for
, consulte tempos limite assíncronos facilitou.
Herança da interface
IAsyncAction
herda IAsyncInfo . Os tipos que implementam
Anotações aos implementadores
Assim como ao chamar os métodos existentes, há maneiras específicas de definir métodos assíncronos que não usam IAsyncInfo diretamente. Se estiver escrevendo código usando o .NET, seu método poderá retornar um Task. Para C++/CX, você pode usar ode runtime de simultaneidade do Task
/task
internamente, mas deverá retornar uma das interfaces WinRT para seus métodos públicos. Os tipos de suporte assíncronos específicos do idioma (e muitos outros tipos específicos de linguagem que você pode usar convencionalmente no código) não podem ser usados para a área de superfície pública de um componente WinRT.
Propriedades
Completed |
Obtém ou define o delegado que é chamado quando a ação é concluída. |
ErrorCode |
Obtém uma cadeia de caracteres que descreve uma condição de erro da operação assíncrona. (Herdado de IAsyncInfo) |
Id |
Obtém o identificador da operação assíncrona. (Herdado de IAsyncInfo) |
Status |
Obtém um valor que indica o status da operação assíncrona. (Herdado de IAsyncInfo) |
Métodos
Cancel() |
Cancela a operação assíncrona. (Herdado de IAsyncInfo) |
Close() |
Fecha a operação assíncrona. (Herdado de IAsyncInfo) |
GetResults() |
Retorna os resultados da ação. |