Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
(потеря указателя) Пусть не покажется странным мой вопрос...
|
|||
|---|---|---|---|
|
#18+
Есть статический Datateble все колонки которого описаны в Form. в зависимости от условий в него или добавляется ряд или делается Update существующему. Скорость обновления приблизительно 30 раз в секунду (это часть NetFlow коллектора, кому интересно). Через 20-30 секунд работы начинается глюк. Или мне сообщают, что я вышел за границы массива или потерян указатель на объект и программа вылетает. Может кто-то с подобным встречался? Часть кода ниже. private void rsvr_DataReady(DataTable inputData) { int day=time.Day; int var; uint ourIP=0; uint octetsIn=0; uint octetsOut=0; byte code=0; DataRow[] dr; foreach(DataRow datrow in inputData.Rows) { var=variant((int)((ushort)datrow[3]),(int)((ushort)datrow[4]), internalIntNumber); switch (var) { case 1: ourIP=(uint)datrow[1]; octetsIn=(uint)datrow[5]; octetsOut=0; code=1; break; case 2: break; case 3: ourIP=(uint)datrow[1]; octetsIn=(uint)datrow[5]; octetsOut=0; code=0; break; case 4: ourIP=(uint)datrow[0]; octetsIn=0; octetsOut=(uint)datrow[5]; code=0; break; default: break; } if(var==0 || var==2)continue; string filtr="IP="+ourIP+" AND DAYOFMONTH="+day; dr=StaticDataTableInMemory.Select(filtr); DataRow myRow; if(dr.Length==0) {// в базе нет такого IP, надо добавить myRow = StaticDataTableInMemory.NewRow(); myRow["IP"] =(double)ourIP; myRow["DAYOFMONTH"] = day; myRow[2] = (new IPAddress((long)((uint)ourIP))).ToString(); myRow[3] = (double)octetsIn; myRow[4] = (double)octetsOut; myRow[5] = code; try { StaticDataTableInMemory.Rows.Add(myRow); } catch (Exception e) { Console.WriteLine("!!! "+e.ToString()); } } else {// такой IP есть. Надо апдейтить try { dr[0][0]=dr[0][0]; dr[0][1]=dr[0][1]; dr[0][2]=dr[0][2]; dr[0][3]=(double)((int)((double)dr[0][3])+(int)((double)octetsIn)); dr[0][4]=(double)((int)((double)dr[0][4])+(int)((double)octetsOut)); dr[0][5]=code; } catch (Exception e) { Console.WriteLine("@@@ "+e.ToString()); } } } // необязательный элемент к моему вопросу, но для полноты... private int variant(int isnmp,int osnmp, int internalInfNumber) { return isnmp==internalInfNumber?osnmp==0?2:4:osnmp==0?1:3; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2004, 00:37 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32485496&tid=1439277]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
15ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 311ms |

| 0 / 0 |
