Articles of multithreading

Qual è l’accordo con il Throw nascosto quando si cattura una ThreadAbortException?

Sto esaminando un libro di sviluppo generale c # e sono arrivato alla sezione di interruzione del thread. Il libro dice qualcosa sulla falsariga che quando chiamate Thread.Abort () su un altro thread, quel thread genererà un object ThreadAbortException, e anche se provate a sopprimerlo lo riporterà automaticamente, a meno che non abbiate fatto un […]

Task.StartNew () vs Parallel.ForEach: scenario di richieste Web multiple

Ho letto tutte le domande correlate in SO, ma un po ‘confuso sull’approccio migliore per il mio scenario in cui vengono triggerste più chiamate al servizio web. Ho un servizio di aggregazione che prende un input, lo analizza e lo traduce in più richieste web, effettua le chiamate di richieste web (non correlate, quindi potrebbero […]

Esecuzione del numero N di thread in parallelo e in modo sequenziale

Ho un’applicazione in cui ho 1000+ piccole parti di 1 file di grandi dimensioni. Devo caricare massimo 16 parti alla volta. Ho usato la libreria parallela di Thread di .Net. Ho usato Parallel.Per dividere in più parti e assegnato 1 metodo che dovrebbe essere eseguito per ogni parte e impostare DegreeOfParallelism su 16. Ho bisogno […]

Rallentamento sulla creazione di oggetti con molti thread

Sto facendo un progetto che genera centinaia di thread. Tutti questi thread sono in una condizione di “sonno” (sono bloccati su un object Monitor). Ho notato che se aumentassi il numero di thread “dormienti” il programma rallenterebbe molto. La cosa “divertente” è che guardando il Task Manager sembra che maggiore è il numero di thread, […]

Multithreading vs. Multiistanza: quale scegliere?

Sarà una grande differenza tra questi due scenari: un’istanza dell’applicazione crea 100 thread per elaborare alcuni lavori 10 istanze della stessa applicazione creano 10 thread per elaborare i lavori (totale 100) Il numero di thread in entrambi i casi sarà lo stesso. Sono alcune prestazioni o qualche tipo di miglioramento uno sull’altro? Istanza – è […]

Come posso interrompere, sospendere e riprendere i thread in C #?

Come posso interrompere, sospendere e riprendere i thread in C #? Domanda relativa: C’è un modo per sospendere indefinitamente un thread?

Imposta il filo come sfondo o no

Ho bisogno di una spiegazione per quanto riguarda alcuni consigli che ho ricevuto su questo sito. Sto facendo una newsletter per l’invio di app, e ho la mia posta inviata in un thread separato in modo che il processo non rallenti l’intero sito web. Un paio di persone mi hanno consigliato di impostare la proprietà […]

Ho bisogno che questo campo sia volatile?

Ho un thread che gira finché un int modificato da un altro thread è un determinato valore. int cur = this.m_cur; while (cur > this.Max) { // spin until cur is <= max cur = this.m_cur; } Questo.m_cur deve essere dichiarato volatile perché funzioni? È ansible che questo giri per sempre a causa dell’ottimizzazione del […]

Perché ReSharper pensa che “thread.Name == null” sia sempre falso?

Sto scrivendo un metodo di supporto per impostare comodamente il Name di una Thread : public static bool TrySetName(this Thread thread, string name) { try { if (thread.Name == null) { thread.Name = name; return true; } return false; } catch (InvalidOperationException) { return false; } } Funziona come previsto. ReSharper, tuttavia, afferma che la […]

TopMost modulo in una discussione?

Sto usando il seguente codice per aprire un modulo in una nuova discussione: private void button1_Click(object sender, EventArgs e) { Thread thread = new Thread(ThreadProc); thread.Start(); } public void ThreadProc() { Form form = new Form(); form.TopMost = true; form.ShowDialog(); } Ma il modulo appena creato non è TopMost anche se l’ho impostato su true. […]