4D v18

Use...End use

Página Inicial

 
4D v18
Use...End use

Use...End use  


 

 

A sintaxe formal da estrutura Use...End use é:

 Use(Shared_object_or_Shared_collection)
    statement(s)
 End use

A estrutura Use...End use define uma sequência de instruções que executará tarefas no parâmetro Shared_object_or_Shared_collection sob a proteção de um semáforo interno. Shared_object_or_Shared_collection pode ser qualquer objeto compartido ou coleção compartida válidos.

Os objetos compartidos e as coleções compartidas estão desenhados para permitir a comunicação entre processos, em particular, Processos 4D Preemptivos. Podem ser passadas por referência como parâmetros de um processo a outro. Para informação detalhada sobre objetos compartidos ou coleções compartidas, consulte a página Objetos compartidos e Coleções compartidas. As modificações circundantes em objetos compartidos ou coleções compartidas pelas palavras chaves Use...End use são ​​obrigatórias para evitar o acesso concorrente entre processos.

  • Quando a linha Use for executada com êxito, todas as propriedades/elementos Shared_object_or_Shared_collection bloqueiam para o resto do processo no acesso de escrita até se execute a linha End use correspondente.
  • A sequência de instruções pode ser executada qualquer modificação nas propriedades/elementos Shared_object_or_Shared_collection sem risco de acesso concorrente.
  • Se for agregado outro objeto ou coleção como propriedade de parâmetro Shared_object_or_Shared_collection, se conectam dentro do mesmo grupo compartilhado (ver Usar objetos ou coleções compartidos)..
  • Se outro processo tentar acessar a uma das propriedades Shared_object_or_Shared_collection ou as propriedades conectadas enquanto se estiver executando uma sequência Use...End use, se põe automaticamente em espera e espera até que finalize a sequência atual. 
  • A linha End use desbloqueia as propriedades Shared_object_or_Shared_collection e todos os objetos que compartem o mesmo identificador de bloqueio.
  • Várias estruturas Use...End use podem ser aninhadas nol código 4D. Nesse caso, todos os bloqueios são empilhados e as propriedades/elementos se liberarão só quando for executada a última chmada End use.

Nota: se uma função membro de uma coleção (ver Member method) modifica uma coleção compartida, se chama automaticamente a um Use interno para esta coleção compartida enquanto se executa a função.



Ver também 

Objetos compartidos e Coleções compartidas

 
PROPRIEDADES 

Produto: 4D
Tema: Apresentação da linguagem

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16 R6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v18)