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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2010, 18:11   #1
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию Многопоточность чтения

Пожалуйста объясните мне как сделать асинхронный вызов для чтения (чтобы был поток Stream). Желательно простым примером. Вот основной поток, а вот асинхронный.
tigrend вне форума Ответить с цитированием
Старый 10.04.2010, 18:14   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
// вот основной поток
...
(new Thread(new ThreadStart(delegate()
{
  // а вот асинхронный
  var str = new Stream....
}))).Start();
p.s.
Пишу так, как генерирует студия. Доверяю Micrsofot, как правильно писать код для их фреймворка

Последний раз редактировалось BOBAH13; 10.04.2010 в 19:48.
BOBAH13 вне форума Ответить с цитированием
Старый 10.04.2010, 19:37   #3
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

тот же код можно еще вот так написать, с помощью лямбд выражений
Код:
(new Thread(() => 
{ 
	//код нового потока
})).Start();
вообще мне кажется вопрос был немного не про те потоки )
конкретно про асинхронность вот тут написано http://msdn.microsoft.com/ru-ru/library/kztecsys.aspx

Последний раз редактировалось m0nax; 10.04.2010 в 20:25.
m0nax вне форума Ответить с цитированием
Старый 10.04.2010, 21:37   #4
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

А как его вызывать? А как завершать? А как из него правильно обращаться к элементам основного потока (всякие элементы формы)?
m0nax вы правы именно с этим мануалом я мысленно и не справился в полном объёме. то есть примерно ясно а вот как пользоваться неясно.
tigrend вне форума Ответить с цитированием
Старый 10.04.2010, 22:21   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Как то, а как это ? А почему так, а не так ? Ужас.... привыкаем к самостоятельности http://www.google.com.ua/search?q=C%23+Threads очень трудно было додуматься написать такой запрос.

Edit:
Честно говоря я чего то не понял, это к чему было сказано ?
Цитата:
Сообщение от tigrend Посмотреть сообщение
Вам то хорошо вы профессионал.
лень читать (изучать) ? По ссылке перейти и найти уйму материала как работать с потоками в C#.

Последний раз редактировалось BOBAH13; 11.04.2010 в 15:06.
BOBAH13 вне форума Ответить с цитированием
Старый 11.04.2010, 09:36   #6
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

Вам то хорошо вы профессионал.
tigrend вне форума Ответить с цитированием
Старый 11.04.2010, 13:57   #7
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

а можете детальн описать суть задачи, (без описания Вашей реализации) - то что нужно сделать! А я попробую Вам расписать максимально правильное решение!
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 11.04.2010, 16:37   #8
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

BOBAH13 вот чтобы разобраться и спрашивают на форумах. Всем известно что живые люди учат гораздо лучше самых лучших книг.

Arnezami Конечно можно. Суть вот в чём. Мне надо считать данные с сайта. А уже потом выцарапать из него некоторые строки (как первое так и второе реализовано). Многопоточность я реализовал через BeginInvoke и EndInvoke, но вот проблема, когда закрываем приложение оно почему то остаётся висеть в памяти и в этом вся суть проблемы. Значит я чтото неправильно делаю.
tigrend вне форума Ответить с цитированием
Старый 11.04.2010, 22:16   #9
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

Для уничтожения процесса я использую вот такую строку кода:

Код:

  System.Environment.Exit(System.Environment.ExitCode);
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 12.04.2010, 05:07   #10
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

Arnezami Спасибо за совет. Я уверен что это мне пригодится ещё и не раз. Процесс действительно убивается, но мне нужно чтобы я мог и на кнопку чтения второй раз нажать, а процесс тогда зависает (хотя может и не надо. попробую ещё одну такую же кнопку сделать. upd: одной кнопкой дело не обойдётся, а код копировать неохота).

Последний раз редактировалось tigrend; 12.04.2010 в 05:23.
tigrend вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточность Neymexa Помощь студентам 3 13.04.2010 11:43
Многопоточность JakSon Общие вопросы Delphi 10 27.12.2009 02:19
Многопоточность на билдере Golovastik Помощь студентам 0 03.10.2009 21:59
Многопоточность. newmister Общие вопросы Delphi 9 24.07.2009 12:54
Многопоточность PUH Помощь студентам 3 06.06.2009 13:54