none
Compartilhar DataTable entre Threads RRS feed

  • Pergunta

  • Amigos, bom dia.

    Tenho um DataTable de aproximadamente 10 linhas, 5 colunas, coisa básica.
    A questão é que tenho duas threads que rodam a cada 30ms e ambas ficam consultando/alterando valores o tempo todo.

    Qual a melhor maneira de trabalhar esta questão sem que uma thread fique esperando pela outra ?
    Em algumas situações aparece o erro abaixo:


    17/11/2015 08:23:07.991 : DEBUG[timerPesagemTick] O índice interno DataTable está corrompido: '5'. System.Data em System.Data.RBTree`1.RBInsert(Int32 root_id, Int32 x_id, Int32 mainTreeNodeID, Int32 position, Boolean append) em System.Data.RBTree`1.RBInsert(Int32 root_id, Int32 x_id, Int32 mainTreeNodeID, Int32 position, Boolean append) em System.Data.Index.RecordStateChanged(Int32 oldRecord, DataViewRowState oldOldState, DataViewRowState oldNewState, Int32 newRecord, DataViewRowState newOldState, DataViewRowState newNewState) em System.Data.DataTable.RecordStateChanged(Int32 record1, DataViewRowState oldState1, DataViewRowState newState1, Int32 record2, DataViewRowState oldState2, DataViewRowState newState2) em System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException) em System.Data.DataRow.EndEdit() em System.Data.DataRow.set_Item(DataColumn column, Object value) em System.Data.DataRow.set_Item(String columnName, Object value) em Norea.Form1.timerPesagemTick(Object StateObj) na c:\Desenvolvimento\Norea\Norea\Norea\Form1.cs:linha 1675


    terça-feira, 17 de novembro de 2015 10:31