ФорумПрограммированиеБольше языковC/C++ и C# → Чтение данных с сервера клиентом на c#

Чтение данных с сервера клиентом на c#

  • Kvs

    Сообщения: 420 Репутация: N Группа: Кто попало

    Spritz 2 марта 2011 г. 20:20, спустя 5 минут 27 секунд

    Возник вопрос. Как мне обновлять поступающие данные? Я думал можно будет делать к примеру this.Refresh() которая обновит окно и все будет тип топ. Но не все так просто оказывается. При установке на таймер, программа тормозит жутко. Она перезапускается можно сказать. Какаие еще есть способы? Что посоветуете?

    Вот код моей «программы» . Я пока тренируюсь, понимаю, говнокод.

    Ну хоть логически, как сделать? Что использовать?

    /*
    *
    * User: user
    * Date: 25.02.2011
    * Time: 23:41
    *
    * To change this template use Tools | Options | Coding | Edit Standard Headers.
    */
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;
    using Microsoft.VisualBasic;
    using System.IO;
    using System.Net;
    //using MySql.Data.MySqlClient;





    namespace xxx
    {
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class MainForm : Form
    {


    MainMenu Menu1;
    Label msg;
    System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();


    MenuItem Item1;
    MenuItem Item2;
    MenuItem Item3;


    //запускаем программу
    private static void Main(string[] args)
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
    }


    //настраиваем окно
    public void windowConf() {
    this.BackColor = Color.White;
    this.Width = 1000;
    this.Height = 400;

    }

    //создаем меню
    public void menuCreater() {
    Menu1 = new MainMenu();
    Item1 = new MenuItem("Управление");
    Item2 = new MenuItem("Выйти");
    Item3 = new MenuItem("О программе");
    Menu1.MenuItems.Add(Item1);
    Item1.MenuItems.Add(Item2);
    Item1.MenuItems.Add(Item3);
    this.Menu = Menu1;
    Item2.Click += new EventHandler(Item1_Click);
    }

    //читаем данные с сервера
    public void GFS() {

    HttpWebRequest request= (HttpWebRequest)WebRequest.Create("http://team.b13.su");
    request.ContentType=@"text/xml;charset=""utf-8""";
    request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)";
    request.Method = "POST";
    request.KeepAlive = true;

    byte[] message = new byte[256];

    using (Stream requestStream = request.GetRequestStream())
    {
        requestStream.Write(message,0,message.Length);
        requestStream.Close();
    }

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    using(StreamReader sr = new StreamReader(response.GetResponseStream()))
    {

      string ttt = sr.ReadToEnd();
      File.WriteAllText("serverChache.txt",ttt);
    }
    }


    public void EchoLabel() {
    string[] s = File.ReadAllLines("serverChache.txt");
     
      int y = 0;
    for (int i = 0; i < 10; i++)
    {
    msg = new Label();
    msg.Width = 900;
    msg.Height = 30;
    msg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    msg.Location = new Point(1,y);
    msg.Text = s;
    y = y + 29;
    this.Controls.Add(msg);

    }

    }


    public void RefreshWhithTimer() {

    myTimer.Tick += new EventHandler(Tr);
    myTimer.Interval = 1000;
    myTimer.Start();
    myTimer.Enabled = true;

    }



    public MainForm()
    {


    windowConf();
    menuCreater();
    GFS();
    RefreshWhithTimer();
    EchoLabel();



    }





    void Item1_Click(object sender, EventArgs e) {
    Application.Exit();
    }

    void Tr(object sender, EventArgs e) {

    GFS();
    EchoLabel();


    }




    }
    }
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 2 марта 2011 г. 1:09, спустя 4 часа 49 минут 15 секунд

    много лишнего кода вероятно, using Microsoft.VisualBasic; а это зачем?
    проверь References, может лишние библиотеки подключаешь

    может у тебя просто тупой комп раз тормозит?
  • Kvs

    Сообщения: 420 Репутация: N Группа: Кто попало

    Spritz 2 марта 2011 г. 20:15, спустя 19 часов 5 минут 18 секунд

    да нет, ноут - кризис могу играть.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 3 марта 2011 г. 14:19, спустя 18 часов 4 минуты 47 секунд

    Kvs, а что делает твоя программа? Какая ее цель?
  • Kvs

    Сообщения: 420 Репутация: N Группа: Кто попало

    Spritz 3 марта 2011 г. 20:54, спустя 6 часов 34 минуты 17 секунд


    Kvs, а что делает твоя программа? Какая ее цель?
    прочитать сообщения, вывести их и по возможности ответить на сообщение.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 4 марта 2011 г. 16:33, спустя 19 часов 39 минут 41 секунду

    Зачем тебе здесь обновлять полностью форму или перерисовывать?
    Если можно просто каждые 5, например, запрашивать обновления с сервера (в фоном режиме во втором потоке) и все обновления применять к необходимым компонентам.
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 4 марта 2011 г. 19:29, спустя 2 часа 55 минут 20 секунд

    с новым годом
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Kvs

    Сообщения: 420 Репутация: N Группа: Кто попало

    Spritz 5 марта 2011 г. 12:17, спустя 16 часов 48 минут


    Зачем тебе здесь обновлять полностью форму или перерисовывать?
    Если можно просто каждые 5, например, запрашивать обновления с сервера (в фоном режиме во втором потоке) и все обновления применять к необходимым компонентам.
    мысль

Пожалуйста, авторизуйтесь, чтобы написать комментарий!