Question 1
Question
Você tem um monte de itens que precisam ser processados. Para cada item, você precisa executar um cálculo complexo. Que técnica você deve usar?
Answer
-
Você cria uma Task para cada item e, em seguida, aguarde até que todas as tarefas terminem.
-
Você usa Parallel.For para processar todos os itens simultaneamente.
-
Você usa async/ await para processar todos os itens simultaneamente.
-
Você pode adicionar todos os itens em um BlockingCollection e processá-los em uma thread criada pela classe Thread.
Question 2
Question
Você está criando uma consulta complexa que não requer nenhuma ordem particular e pretende executá-lo em paralelo. Que método você deve usar?
Answer
-
AsParallel
-
AsSequential
-
AsOrdered
-
WithDegreeOfParallelism
Question 3
Question
Você está trabalhando em um aplicativo ASP.NET que recupera alguns dados de outro servidor web e em seguida grava a resposta ao banco de dados. Se usa async/ await?
Answer
-
Não, as duas operações dependem de fatores externos. Você precisa esperar antes de serem finalizados.
-
Não, em um aplicativo de servidor que você não tem que usar async/await. É apenas para a capacidade de resposta no cliente.
-
Sim, isso irá liberar sua thread para servir outras requisições enquanto espera para o I / O para completo.
-
Sim, isso colocar sua thread para "dormir" (sllep) enquanto espera por I / O, para que ele não usa qualquer CPU.
Question 4
Question
Você quer sincronizar o acesso usando uma instrução lock. Em qual membro você travar?
Question 5
Question
Você precisa implementar o cancelamento de uma tarefa de longa duração. Qual objeto que você passar para a tarefa?
Question 6
Question
Você está implementando uma máquina de estado em uma classe multithread. Você precisa verificar o estado atual, e alterá-lo para o novo um em cada etapa. Qual o método que você usa?
Answer
-
Volatile.Write (currentState ref)
-
Interlocked.CompareExchange (ref currentState, ref newState, xpectedState)
-
Interlocked.Exchange (ref currentState, newState)
-
Interlocked.Decrement (ref newState)
Question 7
Question
1. Você precisa iterar sobre uma coleção em que você sabe o número de itens. Você precisa remover certos itens da coleção. Qual é a afirmação que você usa?
Question 8
Question
Você tem um monte de checks (verificações) em seu aplicativo para valores nulos. Se um valor não for nulo, você quer chamar um método nele. Você quer simplificar o seu código. Que técnica você usa?
Question 9
Question
Você está processando alguns dados de através da rede. Você usa um método hasNext e Read para recuperar os dados. Você precisa executar algum código em cada item. O que você usa?
Answer
-
for
-
foreach
-
while
-
do-while
Question 10
Question
Você tem um método private em sua classe e você quer fazer chamada do método possível por
certos chamadores. O que você faz?
Answer
-
fazer o método ficar "public"
-
usar um evento por fora, pode ser notificado quando o método for executado.
-
Usar um método que retorna um delegate para chamadores autorizados.
-
Declarar o método privado como um lambda.
Question 11
Question
Você tem um evento declarado em sua classe, e você quer que os usuários fora de sua classe possam provocar/incocar este evento. O que você faz?
Answer
-
tornar o evento "public"
-
Adicione um método público à classe que gera o evento.
-
Use um delegate público em vez de um evento.
-
Use um assessor de evento personalizado para dar acesso a usuários externos.
Question 12
Question
Você está usando um delegate multicast com vários assinantes. Você quer ter certeza de que todos os assinantes sejam notificados, mesmo que uma exceção é lançada. O que você faz?
Answer
-
Invocar manualmente os eventos usando GetInvocationList.
-
chamar manualmente o evento em um try / catch.
-
Nada. Este é o comportamento padrão.
-
Deixe assinantes retornar verdadeiro ou falso ao invés de lançar uma exceção.
Question 13
Question
Você está validando/checking os argumentos de seu método para valores nulos ilegais. Se você encontrar um valor nulo, que exceção você joga?
Question 14
Question
Seu código pega (catch) um IOException quando um arquivo não pode ser acessado. Você quer fornecer mais informações para o chamador de seu código. O que você faz?
Answer
-
Alterar a mensagem de exceção e relançar a exceção
-
lançar uma nova exceção com informações extra que tem a IOException como InnerException
-
lançar uma nova exceção com informações mais detalhadas.
-
Use throw para relançar (rethrow) a exceção e economizar a pilha de chamadas.
Question 15
Question
Você está criando uma exceção personalizada chamado LogonFailedException. Quais construtores você deve pelo menos acrescentar? (Escolha todos os que se aplicam).
Answer
-
LogonFailed ()
-
LogonFailed (mensagem de texto)
-
LogonFailed (mensagem String, Exception innerException)
-
LogonFailed (Exceção innerException)