Потоки и парсинг данных - C#

Узнай цену своей работы

Формулировка задачи:

Не знаю как правильно описать,но попробую своими словами. Вообщем в потоке через Json парсим twitch и если есть поле

display_name

,выдает в BalloonTipText сообщение о том,что пользователь начал трансляцию. Поток работает до тех пор,пока не найдет

display_name

и не выдаст сообщение в подсказку. Дальше надо парсить эту же страницу и ждать пока появиться поле

stream\":null

,после чего вернуться к начальному действию с парсингом

display_name

. По простому: 1.Спарсить твич 1.Найти поле

display_name

2.Выдать инфу в BalloonTipText 3.Ожидать пока не найдется поле B]stream\":null[/B] 4.Вернутся к 1 пункту.
Листинг программы
  1. public partial class SettingsForm : Form
  2. {
  3. Thread twitchStreamThread;
  4. string Username = "testProfile";
  5. public SettingsForm()
  6. {
  7. InitializeComponent();
  8. //Set up the icon image
  9. twitchIcon = new Icon("notice.ico");
  10. //Оповещение и иконка
  11. twitchTray = new NotifyIcon();
  12. twitchTray.Icon = twitchIcon;
  13. twitchTray.Visible = true;
  14. //Сворачиваем форму и прячем в панели задач
  15. this.WindowState = FormWindowState.Minimized;
  16. this.ShowInTaskbar = false;
  17. // Запуск потока
  18. twitchStreamThread = new Thread(new ThreadStart(TwitchStreamLiveThread));
  19. twitchStreamThread.Start();
  20. }
  21. private void notice_ClickLinked(Object sender, EventArgs e)
  22. {
  23. System.Diagnostics.Process.Start("http://www.twitch.tv/testProfile");
  24. }
  25. private void TwitchStreamLiveThread()
  26. {
  27. try
  28. {
  29. while (true)
  30. {
  31. string sUrl = "https://api.twitch.tv/kraken/streams/" + Username;
  32. HttpWebRequest wRequest = (HttpWebRequest)HttpWebRequest.Create(sUrl);
  33. wRequest.ContentType = "application/json";
  34. wRequest.Accept = "application/vnd.twitchtv.v3+json";
  35. wRequest.Method = "GET";
  36. dynamic wResponse = wRequest.GetResponse().GetResponseStream();
  37. StreamReader reader = new StreamReader(wResponse);
  38. dynamic res = reader.ReadToEnd();
  39. reader.Close();
  40. wResponse.Close();
  41. if (res.Contains("display_name"))
  42. {
  43. twitchTray.BalloonTipTitle = Username + " начал(а) трансляцию!";
  44. twitchTray.BalloonTipText = "(Нажмите для просмотра трансляции)";
  45. twitchTray.ShowBalloonTip(10000);
  46. twitchTray.BalloonTipClicked += notice_ClickLinked;
  47. }
  48. Thread.Sleep(5000);
  49. }
  50. }
  51. catch (ThreadAbortException tbe)
  52. {
  53. }
  54. // Что дальше делать?
  55. }
  56. }
нашел временное решение,созданием ещё одного потока с поиском второй строки и по очередной паузы потоков... но это не то,что я хотел.Сделал конечно,но через одно место...

Решение задачи: «Потоки и парсинг данных»

textual
Листинг программы
  1. while (true) {Thread.Sleep(5000);}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы