DispatchObject Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Classe base para objetos de despacho.
public abstract class DispatchObject : CoreFoundation.NativeObject
type DispatchObject = class
inherit NativeObject
- Herança
- Derivado
Observações
Os objetos de despacho partilham funções para coordenar a gestão de memória, suspensão, cancelamento e ponteiros de contexto. Embora todos os objetos de despacho sejam reteníveis, nem todos suportam suspensão, apontadores de contexto ou finalizadores (atualmente apenas filas e fontes suportam estas interfaces adicionais).
A invocação de blocos em filas de despacho ou fontes de despacho pode ser suspensa ou retomada com os métodos Suspend() e Resume() respetivamente. A estrutura de despacho verifica sempre o estado da suspensão antes de executar um bloco, mas tais alterações nunca afetam um bloco durante a execução (não preemptiva). Portanto, a suspensão de um objeto é assíncrona, a menos que seja realizada a partir do contexto da fila de destino para o objeto dado. O resultado de suspender ou retomar um objeto que não é uma fila de despacho ou uma fonte de despacho é indefinido.
Importante: a suspensão aplica-se a todos os aspetos do ciclo de vida do objeto de despacho, incluindo a função finalizador e o handler de cancelamento. Por isso, é importante equilibrar as chamadas para Suspend() e Resume() de modo a que o objeto de despacho seja totalmente retomado quando a última referência é libertada. O resultado de libertar todas as referências a um objeto de despacho enquanto está em estado suspenso é indefinido.
As filas de despacho e as fontes suportam ponteiros de contexto suplementares. O valor do ponto de contexto pode ser recuperado e atualizado com a Context propriedade.
O resultado de obter ou definir o contexto de um objeto que não é uma fila de despacho ou uma fonte de despacho é indefinido.
Propriedades
| Nome | Descrição |
|---|---|
| Handle |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| Owns |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
Métodos
| Nome | Descrição |
|---|---|
| Activate() |
Classe base para objetos de despacho. |
| ClearHandle() |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| Dispose() |
Liberta todos os recursos utilizados por este objeto. (Herdado de DisposableObject) |
| Dispose(Boolean) |
Liberta os recursos usados por este objeto. (Herdado de NativeObject) |
| Equals(Object) |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| GetCheckedHandle() |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| GetHashCode() |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| InitializeHandle(NativeHandle) |
Classe base para objetos de despacho. (Herdado de DisposableObject) |
| Release() |
Classe base para objetos de despacho. |
| Retain() |
Classe base para objetos de despacho. |
| SetTargetQueue(DispatchQueue) |
Classe base para objetos de despacho. |
Métodos da Extensão
| Nome | Descrição |
|---|---|
| GetHandle(INativeObject) |
Classe base para objetos de despacho. |
| GetNonNullHandle(INativeObject, String) |
Classe base para objetos de despacho. |