Articles of multithreading

Ideas sobre lógica / algoritmo y cómo prevenir la carrera en escrituras en subprocesos a SqlServer

Tengo la siguiente lógica: public void InQueueTable(DataTable Table) { int incomingRows = Table.Rows.Count; if (incomingRows >= RowsThreshold) { // asyncWriteRows(Table) return; } if ((RowsInMemory + incomingRows) >= RowsThreshold) { // copy and clear internal table // asyncWriteRows(copyTable) } internalTable.Merge(Table); } Hay un problema con este lagoritmo: RowsThreshold = 10000 dado RowsThreshold = 10000 Si incomingRows […]

Acelerador de máxima concurrencia

Supongo que hay muchas soluciones posibles para esta pregunta, puedo encontrar algunas, algunas claramente mejores que otras, pero ninguna de las cuales estoy seguro es óptima, por lo que estoy interesado en escuchar a los verdaderos gurús de múltiples hilos disponibles. Tengo alrededor de 100 piezas de trabajo que pueden ejecutarse simultáneamente, ya que no […]

¿Hay algún escenario en el que no se deben usar las tareas?

Estoy leyendo sobre Tareas, la forma preferida de hacer progtwigción asíncrona con 4.0. Me pregunto si hay algún caso de uso donde el uso de Tareas no sea preferible a los subprocesos c # normales.

C # Multi hilo – Mover objetos entre hilos

Estoy trabajando con un control de winforms que es tanto un elemento de GUI como también un proceso interno que no ha sido expuesto al desarrollador. Cuando se crea una instancia de este componente, puede tardar entre 5 y 15 segundos en estar listo, así que lo que quiero hacer es ponerlo en otro hilo […]

¿Hay una manera de ejecutar async lambda sincrónicamente?

¿Hay una manera de ejecutar async lambda sincrónicamente? No está permitido modificar la expresión lambda, debe dejarse como está. Copiar / pegar ejemplo (es una abstracción): var loopCnt = 1000000; Action<List> aslambda = async (l) => { Thread.Sleep(100); await Task.Run(() => { }); for (int i = 0; i < loopCnt; i++) { l.Add(i); } […]

Separar hilos en un servicio web después de que se complete

Si esto se ha solicitado antes de mis disculpas, y esto es .NET 2.0 ASMX Web services, nuevamente mis disculpas = D Una aplicación .NET que solo expone servicios web. Aproximadamente 10 millones de mensajes por día de carga equilibrada entre varios servidores IIS. Cada mensaje entrante es XML, y un mensaje saliente es XML. […]

Gestión de eventos de subprocesos en C #

Estoy trabajando con un marco que ejecuta su propio distribuidor de eventos en un subproceso separado. El marco puede generar algunos eventos. class SomeDataSource { public event OnFrameworkEvent; void FrameworkCallback() { // This function runs on framework’s thread. if (OnFrameworkEvent != null) OnFrameworkEvent(args); } } Quiero entregar estos eventos a un objeto Winforms en el […]

Cómo usar async y esperar en el temporizador

Los requisitos de mi aplicación de Windows son: Usando HttpWebRequest, obtenga la solicitud / respuesta web cada 3 segundos en un subproceso (el total es aproximadamente 10 subprocesos para realizar esta solicitud / respuesta web). Cada hilo utiliza algunas variables globales. Quiero usar un System.Timers.Timer y async y esperar. Pero no sé que es una […]

Abrir una ventana de WPF en otro hilo desde una aplicación de Windows Forms

Bien, debería comenzar diciendo que no estoy seguro de que esta sea necesariamente la manera correcta de lidiar con esto, pero … Básicamente, he creado una ventana en WPF para mostrar notificaciones en mi aplicación (un poco como la notificación de correo nuevo de Outlook). Me gustaría probar y mostrar esta ventana en su propio […]

Error “La base de datos está bloqueada” de SQLite en una aplicación de multiprocesos

Existe una aplicación de subprocesos múltiples, que funciona con archivos de base de datos grandes (> 600 Mb). El problema de “la base de datos está bloqueada” comenzó cuando agregué datos de blob y comencé a operar con> 30 Kb de datos BLOB por solicitud. Creo que el problema relacionado con la velocidad de disco […]