Пропадают события
От: ZeeM  
Дата: 30.11.07 13:41
Оценка:
Есть класс который обрабатывает события от com-порта. Полученная информация передается с помощью событий в главную форму для дальнейшей обработки и еще в одну форму где отображается log информация о работе с портом.

В log форме вывожу полученную информацию потоко-безопасно для WinForm(вывожу в ListView):


        ....
        
        public void Invoke(MethodInvoker methodToInvoke)
        {
            if (InvokeRequired)
            {
                base.Invoke(methodToInvoke);
            }
            else
            {
                methodToInvoke();
            }
        }

        private void SetListView_Log(string sItem1,
                                        string sItem2,
                                        string sItem3,
                                        string sItem4,
                                        string sItem5)
        {
            Invoke(delegate
           {
               ListViewItem LVI = new ListViewItem(sItem1);
               LVI.SubItems.Add(sItem2);
               LVI.SubItems.Add(sItem3);
               LVI.SubItems.Add(sItem4);
               LVI.SubItems.Add(sItem5);
               LVI.SubItems.Add(DateTime.Now.ToString());
               ListView_Log.Items.Add(LVI);

               if (ListView_Log.Items.Count > 1000)
                   RemoveItem(ListView_Log.Items.Count - 1);
           }
            );
        }


В результате часть событий не отображаются в форме. Т.е. просто пропадают. Часть приходит с опозданием. В чем может быть проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.