Articles of multithreading

Accesso ai membri della class con Invoke da un thread diverso in C #

Nota : Parte di una serie: C #: accesso ai membri del modulo da un’altra class e Come accedere agli oggetti modulo da un altro file cs in C # . Ciao, L’idea è di notificare all’utente l’utilizzo del memo quando un pacchetto viene ricevuto / inviato in un client TCP. Dopo un paio di […]

Come avviare un thread per mantenere aggiornata la GUI?

Ho una finestra con pulsante che triggers l’elaborazione lunga. Ho messo l’elaborazione in un thread separato, ma – con mia sorpresa – rende comunque la GUI bloccata. Nessun controllo è aggiornato, non riesco nemmeno a spostare la finestra. Quindi la domanda è come avviare il thread, quindi non interferirà con la GUI, cioè la GUI […]

Perché restituisce GetThreadTimes

Sto provando a misurare il tempo trascorso in un thread per i report dei progressi, ma sto ottenendo risultati molto strani dalla chiamata di sistema GetThreadTimes. Dato il seguente programma (compilato in VS 2013, con targeting .NET 4.5): using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; namespace ThreadTimingTest { class Program { static Stopwatch _wallClockTimer; […]

Esecuzione di appendici Log4Net su thread separati

Attualmente, ho il mio sistema di registrazione, in cui il registro è essenzialmente una coda, con un thread separato che ascolta la coda e fa tutte le operazioni di scrittura effettive. Il sistema elabora una tonnellata di messaggi di registro, i file possono facilmente superare le dimensioni di 10 MB in pochi minuti, quindi non […]

Thread.Start non viene restituito in alcuni casi sparsi nella mia applicazione c #

Ho scritto un’applicazione server TCP in c #. L’applicazione ascolta le connessioni in entrata utilizzando il metodo TcpListener.AcceptTcpClient () nel thread principale del listener. Quando viene ricevuta una connessione, TcpListener.AcceptTcpClient () sblocca e restituisce l’object TCPClient. Alla ricezione di una connessione, viene creato un nuovo thread e iniziato a leggere i dati di scrittura sulla […]

Eccezione “cross-thread operation not not valid” quando si tenta di ottenere il valore di comboBox

“Cross-thread operation is not valid” exception Ho sperimentato questa eccezione molte volte, ma tutte quelle volte che stavo impostando il valore di un controllo. Quella volta ho risolto utilizzando una funzione chiamata SetControlPropertyThreadSafe() , che è stata suggerita da qualcuno solo su stackoverflow.com. Ma questa volta ricevo questa eccezione quando sto cercando di ottenere il […]

Questo codice C # può fallire a causa di un valore in un registro o in una cache che non viene mai riscritta nella memoria principale?

In questo articolo: http://msdn.microsoft.com/en-us/magazine/jj883956.aspx l’autore afferma che il seguente codice può fallire a causa di “loop read hoisting”: class Test { private bool _flag = true; public void Run() { // Set _flag to false on another thread new Thread(() => { _flag = false; }).Start(); // Poll the _flag field until it is set […]

Servizio Web C # .NET in modo asincrono

Sto cercando di implementare un’API che esegue alcune attività molto lunghe utilizzando un servizio Web. Fondamentalmente voglio che il servizio Web avvii un thread che esegue il lungo compito e lo lascia in esecuzione fino al suo completamento. Il problema è perché è una API che voglio che sia multipiattaforma. Quindi le mie domande sono […]

C #: richiama l’evento dal blocco bloccato

Di solito ho sentito che è una buona idea sbloccare i blocchi prima di chiamare gli ascoltatori di eventi per evitare situazioni di stallo. Tuttavia, poiché il lock {} è rientrante dallo stesso thread in C #, è ansible chiamare eventi da un blocco bloccato o devo fare una copia dei dati di stato rilevanti […]

multithreading C # del selenium

Selenium WebDriver supporta bene il multithreading? Sto cercando di usarlo con diverse windows aperte 2-4, e sembra che la finestra del browser (Firefox) si blocchi a volte. Quando inizia una discussione: _driver.FindElement(By.Id(id)).SendKeys(“MyMessage”); E un altro thread allo stesso tempo cerca di ottenere un altro stato di elemento della pagina. Come trattare questo spirito? Ci sono […]