Como: Coordenar vários Threads de execução

Em ordem para os componentes multithread ser thread-safe, você deve coordenar o acesso a recursos compartilhados. Se vários segmentos tentarem acessar um recurso compartilhado ao mesmo tempo, as condições de corrida podem resultar, causando corrupção de dados. Você pode evitar condições de corrida usando bloqueios. Para obter detalhes sobre as condições de corrida e de segurança do thread, consulte Componentes de Thread-Safe.

Para criar um bloqueio em um objeto

  1. Identifique o código que deve ser executado atomicamente e o objeto no qual o código será executado. Para obter detalhes, consulte Componentes de Thread-Safe.

  2. Colocar um bloqueio nesse objeto e coloque o código dentro desse bloqueio.

    Esse código agora será executado atomicamente sobre o objeto bloqueado.

    SyncLock MyObject   ' This represents the start of the lock on MyObject.
    ' Insert code to be executed atomically on MyObject here.
    End SyncLock   ' This represents the end of the lock.
    
    lock (MyObject) 
       // All code inside the braces {} is executed with MyObject locked.
    {
       // Insert code to be executed atomically on MyObject here.
    }
    

Consulte também

Tarefas

Demonstra Passo a passo: Criação de um componente Multithreaded simples com Visual Basic

Demonstra Passo a passo: Criação de um componente Multithreaded simples com Visual C#

Referência

BackgroundWorker

Conceitos

Componentes de thread-Safe.

Event-based Asynchronous Pattern Overview

Outros recursos

Multithreading em componentes