Поток уходит в ожидание или состояние сна при попытке добавить строки в DataTableC#

Место общения программистов C#
Ответить
Anonymous
 Поток уходит в ожидание или состояние сна при попытке добавить строки в DataTable

Сообщение Anonymous »

Я создал поток, в котором вызывает веб -сервер - считывает некоторые данные - записывает строки в DataTable < /p>

Мой текущий поток, который - ожидает, пока появятся новые строки - передайте данные в систему < /p>

Проблем DataTable < /p>

Структура кода - это примерно так: < /p>

class DataRetriever
{
Thread GetReport;

private DataTable ServerData;

int rowCount = 0;

private int _lastReadedRowNo = -1;

public GetData()
{
thrGetReport = new Thread(new ThreadStart(fn_thrGetReport));
thrGetReport.Name = "CallServer";
thrGetReport.IsBackground = true;
thrGetReport.Start();
}

//Writer Thread Executes this
private void fn_thrGetReport()
{
for (int i = 0; i < cnt; i++)
{
DataRowCollection drcTemp = server.GetAnswer(parameter);

for (int j = 0; j < drcTemp.Count; j++)
{
ServerData.Rows.Add(drcTemp[j].ItemArray); // Here thread goes in Sleep/wait Mode
Interlocked.Increment(ref rowCount);
}
}

}

//This executes in Current Thread
public bool Read
{
get
{
if (no more data to ask condition)
{
return false;
}
else
{
//wait till new rows are not entered
while (rowCount

Подробнее здесь: https://stackoverflow.com/questions/649 ... -datatable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»