Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2011, 18:08   #1
lindstorm
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 13
По умолчанию Потоки и listview

ребят подскажите пожалуйста
в общем надо сделать сканер портов с помощью потоков
я создаю 10 потоков и каждому из них назначаю по 1/10 от общего количества портов
for (int i = firstpoin; i < (firstpoin+10); i++ )
{
new_thread = new Thread(new ThreadStart(new Worker(i,this).DoWork));
new_thread.Start();
new_thread.IsBackground = true;
}
firspoint - начальное значение порта
передаю начальное значение для каждого потока в переменнную i (то есть для потока - начальний порт 401 для второго -402 и т д)
затем непосредственно сканирую порты и устанавливаю интервал в цикле 10
for (i = v; i <= lastpoin; i+=10)
{}
lastpoint - конечное значение порта
то есть 1 поток - 401 411 421 и т д
затем чтобы вывести все это хозяйство в listview определяю индекс массива

index2 = i - firstpoin;
s2 = "Порт " + i.ToString();
form1.BeginInvoke(form1.m_GetCloseP orts, new Object[] { s2,index2})

и функция вывода в listview1
public void GetClosePorts(string s, int index2)
{
try
{
lock (listView1)
{
listView1.Items.Add(s);
}
lock (listView1)
{
listView1.Items[index2].SubItems.Add(" закрыт");
}
listView1.Items[index2].BackColor = Color.Bisque;
progressBar1.Value += 1;
}
catch (ArgumentOutOfRangeException e)
{}
}
Проблема в том что при выводе с каждым потоком становится на 1 запись меньше

Порт 401 - закрыт
Порт411- - закрыт
Порт 421 - закрыт
Порт 431 - закрыт
Порт 441 - закрыт
Порт 451 - закрыт
Порт 461 - закрыт
Порт 471 - закрыт
Порт 481 - закрыт
Порт 491 - НИЧЕГО НЕТ
Порт 402 - закрыт
Порт 412- - закрыт
Порт 422 - закрыт
Порт 432 - закрыт
Порт 442 - закрыт
Порт 452 - закрыт
Порт 462 - закрыт
Порт 472 - закрыт
Порт 481 - НИЧЕГО НЕТ
Порт 492 - НИЧЕГО НЕТ
И т д
lindstorm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
Потоки С++ Aleksin Помощь студентам 1 07.11.2010 18:15
Потоки Aleksey1989 Помощь студентам 2 27.10.2010 10:07
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04