2010-06-22 3 views
1

Я делаю программу на несколько дней, но ничего не работает. Я хочу запустить (n threads = user sepecified threads ie 1-100) в списке, который имеет 1-е поле в виде электронной почты (список из 10000 записей). Теперь я хочу проверить каждое электронное письмо и добавить во втором столбце идентификатор потока, а в третьем столбце - результат, является ли сообщение действительным или нет, может кто-нибудь мне помочь? С некоторым кодом и объяснением. thanxТемы, Очередь и серьезная головная боль

+0

С чем именно вы столкнулись? поделиться некоторым примером кода или ошибок. – Jimmy

ответ

1

Это звучит как задача для Task Parallel Library. Вместо того, чтобы управлять своими потоками вручную, он предоставляет вам конструкции более высокого уровня, которые будут правильно использовать пул потоков и имеющееся у вас оборудование, и распараллеливать работу.

+0

Я посмотрю. Что я делаю, это простая программа проверки электронной почты, использующая многопоточность, просмотр списков для проверки электронной почты и обновление списка с результатами. У меня есть 1. бегущая нить (они кажутся запущенными один за другим не одновременно) 2. обновить список просмотров может кто-нибудь покажет мне способ сделать это, я буду велик для вас навсегда. – arvind

+0

Нет параллельной библиотеки задач, которая не решит мою цель. что-то вроде http://www.codeproject.com/KB/IP/Crawler.aspx , но здесь элементы в списке не определены, а также образец использует treeview. Мне нравится код, но я не могу его реализовать для своей проблемы. – arvind

+0

выглядит так, как будто я должен делать это самостоятельно. В любом случае thanx guys – arvind

2

Прежде всего, не используйте ListView в качестве структуры данных. Привяжите его к некоторому List<MyClass>.

Затем запустите свои потоки в ThreadPool (< = .NET 3.5) или с помощью задач (.NET4).

learn о доступе к вашему списку <> в потокобезопасном режиме. А затем обновите свой ListView с помощью Control.Invoke() или с таймера

Смежные вопросы