Aquí estoy usando multi threading y linq a sql.¿Insertar fila en DB mientras usa multiprocesos?
Aquí subo mi fragmento de código: Clase Repositorio
public class PostService
{
MessageRepository objFbPostRespository = new MessageRepository();
public void callthreads()
{
for (int i = 0; i < 100; i++)
{
Thread th = new Thread(postingProcess);
th.Start();
}
}
public void postingProcess()
{
objFbPostRespository.AddLog("Test Multithread", DateTime.Now);
}
}
mensaje
class MessageRepository
{
DataClassesDataContext db_Context = new DataClassesDataContext();
public void AddLog(string Message, DateTime CurrentDateTime)
{
FbMessgaeLog FbMessage = new FbMessgaeLog
{
Message = Message,
Time = CurrentDateTime
};
db_Context.FbMessgaeLogs.InsertOnSubmit(FbMessage);
db_Context.SubmitChanges();
}
}
cuando lo ejecuto sin hilos, entonces está bien el trabajo después de incluir hilo me dieron msg siguientes errores:
Error: Un elemento con la misma clave ya tiene sido agregado.
Gracias de antemano ... :)
¿Qué utiliza su base de datos como clave aquí? – Jens
@Jens Supongo que es una columna de identidad de base de datos y ese es el problema principal – Manatherin
¿cuál es su requisito que lo haga elegir el enfoque de subprocesamiento múltiple? ¿no puedes usar una cola para presionar elementos para escribir y regresar instantáneamente, y dejar que un trabajador de fondo haga el trabajo de manera secuencial? –