На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Не работает поток. , Не работает поток.
    Здравствуйте! Хочу написать форум на asp.net, но не работает поток. Ошибок не выдает просто отрабатывает 1 раз.

    ExpandedWrap disabled
      using System;
      using System.Data;
      using System.Configuration;
      using System.Linq;
      using System.Web;
      using System.Web.Security;
      using System.Web.UI;
      using System.Web.UI.HtmlControls;
      using System.Web.UI.WebControls;
      using System.Web.UI.WebControls.WebParts;
      using System.Xml.Linq;
      using System.Threading;
      using System.Runtime.Remoting.Contexts;
      using System.Collections;
       
      namespace MazalPlanet
      {
      public class ForumClass
      {
      public ArrayList allParameters;
      public void Receiver()
      {
       
       
      lock (this)
      {
      allParameters = SqlClass.SelectFields3("SELECT UsersForum.UserName,UsersForum.Text, UsersForum.TimeM " +
      "FROM aspnet_Membership INNER JOIN UsersForum ON aspnet_Membership.UserId = UsersForum.UserId " +
      "where aspnet_Membership.LastLoginDate<UsersForum.TimeM");
      }
      Thread.Sleep(3000);
       
      //return allParameters;
      }
      }
      }
       
       
      protected void Page_Load(object sender, EventArgs e)
      {
      if (!Page.IsPostBack)
      {
      ForumClass forum = new ForumClass();
      Thread t = new Thread(forum.Receiver);
      t.Start();
      forum.Receiver();
      if (forum.allParameters!=null)
      {
      tb_MainDisplay.Text = "";
      for (int i = 0; forum.allParameters.Count>i;i=i+3 )
      {
      tb_MainDisplay.Text += forum.allParameters[i].ToString() + ": " + forum.allParameters[i+1].ToString() + " " + forum.allParameters[i+2].ToString().Substring(11,8);
      tb_MainDisplay.Text += "\n";
      }
      }
      }
      }
      Цитата Dmitriy78781 @
      просто отрабатывает 1 раз

      а сколько ты хотел, чтобы он отработал?
      он запустился, выполнил SqlClass.SelectFields3, подождал 3 сек и завершился.
      - зачем lock (this) в потоковой функции?
      - зачем вызов forum.Receiver() после t.Start, если этот же метод в потоке?
        Я в потоке хочу обратиться к базе данных и вывести полученный результат в textbox.

        Добавлено
        Поток должен быть один.
          Цитата Dmitriy78781 @
          в потоке хочу обратиться к базе данных и вывести полученный результат в textbox.

          а смысл?
          чтобы положить результат работы потока в текстбокс, надо дождаться окончания потока. Зачем он тогда вообще нужен?
          Сообщение отредактировано: Relaxander -
            Значит надо завершить поток и снова его запустить.
              Цитата Dmitriy78781 @
              надо завершить поток и снова его запустить

              и что дальше?
              значение в серверный элемент TextBox можно записать только в ответ на запрос клиента.
              Т.е. пока данных не будет, ответ не уйдет. Потоки тут ничем не помогут.
              Сообщение отредактировано: Relaxander -
                Тогда как мне создать форум?
                  Цитата Dmitriy78781 @
                  как мне создать форум?

                  а какая связь между форумом и потоками?
                    Цитата Dmitriy78781 @
                    Я в потоке хочу обратиться к базе данных и вывести полученный результат в textbox.

                    А зачем для этого поток? :unsure:
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0284 ]   [ 16 queries used ]   [ Generated: 28.03.24, 20:13 GMT ]