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
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.
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
Conceitos
Event-based Asynchronous Pattern Overview