Articles of multithreading

Parallel.Invoke e Parallel.ForEach essencialmente a mesma coisa?

E por “mesma coisa”, quero dizer, essas duas operações basicamente fazem o mesmo trabalho, e isso se resume a qual delas é mais conveniente para ligar com base no que você tem que trabalhar? (ou seja, uma lista de delegates ou uma lista de coisas para iterar)? Eu tenho pesquisado MSDN, StackOverflow e vários artigos […]

Existe uma maneira de acordar um fio de dormir?

Existe uma maneira de acordar um thread de dormir em c #? Então, dormir por um longo tempo e acordá-lo quando você quer trabalhar processado?

Este access ao dictionary TryGetValue () não bloqueado é seguro para thread?

private object lockObj = new object(); private Dictionary dict = new Dictionary(); public string GetOrAddFromDict(int key) { string value; // non-locked access: if (dict.TryGetValue(key, out value)) return value; lock (this.lockObj) { if (dict.TryGetValue(key, out value)) return value; string newValue = “value of ” + key; // place long operation here dict.Add(key, newValue); return newValue; } […]

Popping uma MessageBox para o aplicativo principal com Backgroundworker no WPF

Em um aplicativo WPF, estou usando um BackgroundWorker para verificar periodicamente uma condição no servidor. Enquanto isso funciona bem, eu quero estourar um MessageBox notifing os usuários se algo falhar durante a verificação. Aqui está o que eu tenho: public static void StartWorker() { worker = new BackgroundWorker(); worker.DoWork += DoSomeWork; worker.RunWorkerAsync(); } private static […]

Como testar a segurança de threads

Você tem algum conselho sobre como testar um aplicativo multithread? Eu sei, erros de threading são muito difíceis de capturar e podem ocorrer a qualquer momento – ou não. Os testes são difíceis e os resultados nunca são certos. Certamente, é melhor projetar e programar cuidadosamente os módulos concorrentes. No entanto – eu não quero […]

Um encadeamento fecha automaticamente?

Estou usando uma class do Gmail para que meu aplicativo possa me enviar uma notificação pelo Gmail. É feito assim: public static void SendMessage(string message) { Notification.message = message; Thread t = new Thread(new ThreadStart(SendMessageThreaded)); t.Start(); } e a function encadeada se parece com isso: private static void SendMessageThreaded() { try { if (Notification.message != […]

Como depurar um deadlock?

Além disso, não sei se posso reproduzi-lo agora que isso aconteceu (estou usando esse aplicativo específico há uma semana ou duas sem problema), supondo que estou executando meu aplicativo no depurador do VS, como devo depurar um impasse após o ocorrido? Eu pensei que eu poderia ser capaz de obter em pilhas de chamadas, se […]

Melhor maneira de enviar mensagem para discussão

Qual é a maneira mais eficiente e rápida de enviar uma mensagem para um thread (não process) que é executado em loop while (1) em c # / .net: Usando uma fila sincronizada (como no Blocking Queues & Thread’s Communication em C # ) Executando um loop de mensagem Usando o Application.Run dos sistemas winforms […]

O que é Interlocked.Increment realmente está fazendo?

Interlocked.Increment parece estar entre as operações mais simples / simples que seria necessário executar em código multithread. Eu suponho que a funcionalidade do método é algum padrão de sorting que qualquer pessoa com experiência de segmentação seria capaz de replicar. Então, basicamente, o que eu estou querendo saber é se alguém poderia fornecer uma cópia […]

Carregando imagem no encadeamento com o WPF

Eu estou tentando fazer uma checkbox de listview que exiba imagens da internet. Os itens são fornecidos pela vinculação de uma fonte de itens a um modelo que contém a URL da imagem e algumas outras propriedades (título, desc, etc …). Infelizmente, a lista é muito lenta para carregar porque o WPF está tentando baixar […]