Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не работает поток. / 17 сообщений из 17, страница 1 из 1
09.12.2014, 19:00
    #38829466
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Здравствуйте! Хочу написать форум на asp.net, но не работает поток. Ошибок не выдает просто отрабатывает 1 раз.

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";
}
}
}
}

...
Рейтинг: 0 / 0
09.12.2014, 19:23
    #38829488
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781, зачем тебе здесь поток? С какой целью ты вызываешь функцию Receiver() в двух потоках?
...
Рейтинг: 0 / 0
09.12.2014, 19:30
    #38829492
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Я в потоке хочу обратиться к базе данных и вывести полученный результат в textbox.
...
Рейтинг: 0 / 0
09.12.2014, 19:31
    #38829495
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
поток должен быть один.
...
Рейтинг: 0 / 0
09.12.2014, 19:47
    #38829515
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781, что ты хочешь сделать можно понять из кода, но это не отвечает на мои вопросы.

1. Зачем тебе здесь поток? Почему бы не вызвать функцию Receiver() напрямую?

2. Функция Receiver() сейчас вызывается два раза: t.Start() и forum.Receiver(). То есть если внутри SqlClass.SelectFields3 нет кеширования, то к БД пойдут два одинаковых запроса. С какой целью ты это делаешь?
...
Рейтинг: 0 / 0
09.12.2014, 20:01
    #38829529
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781,

авторОшибок не выдает просто отрабатывает 1 раз.

авторпоток должен быть один.

Так один или не один? Вы сначала определились бы как-то, а то неясно...
...
Рейтинг: 0 / 0
09.12.2014, 20:03
    #38829532
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Если хотите один дополнительный поток и чтобы срабатывал один раз, то уберите forum.Receiver();
...
Рейтинг: 0 / 0
09.12.2014, 20:55
    #38829557
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
AxeleronЕсли хотите один дополнительный поток и чтобы срабатывал один раз, то уберите forum.Receiver();
Тогда переменная forum.allParameters может остаться неинициализированной. Нужно будет дождаться окончания работы потока (например, t.Join() перед if), но тогда мы снова возвращаемся к вопросу зачем тут поток :)
...
Рейтинг: 0 / 0
09.12.2014, 21:11
    #38829567
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
forum.Receiver(); Я уберу, но не знаю как сделать чтобы поток беспрерывно задавал запрос. Я хочу создать форум при помощи потоков.
Помойму это делается как то так:


public void Receiver()
{

while(true){
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);


}
}
...
Рейтинг: 0 / 0
09.12.2014, 21:15
    #38829569
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Я так понял, что мне нужно дождаться окончания потока и снова его запустить.
...
Рейтинг: 0 / 0
09.12.2014, 21:42
    #38829582
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781,
тут потоки не уместны ( их не должно быть)
начните как все, с жизненного цикла страницы, он как бы громоздок и у многих не влезает в моск, но в будущем
будет гораздо полегче..
...
Рейтинг: 0 / 0
09.12.2014, 22:25
    #38829609
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Тогда как мне создать форум? Подкиньте идею.
...
Рейтинг: 0 / 0
09.12.2014, 22:55
    #38829630
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781,
я не понимаю, если вы про web form, то она у вас ведь уже создана в проекте.
уберите поток и пробуйте что получится, вообще то лучше бы оформили вопрос по принятым стандартам bbcode, легче читать что вы там наворотили ( я имею ввиду оформление кода)
...
Рейтинг: 0 / 0
09.12.2014, 22:59
    #38829633
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
вот почитайте http://www.intuit.ru/studies/courses/611/467/lecture/20746?page=2
первое что попало на русском, без этого все ваши хотелки пустой звук и дальнейший разговор не имеет смысла - точка..
...
Рейтинг: 0 / 0
09.12.2014, 23:27
    #38829651
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Dmitriy78781,

тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
11.12.2014, 06:49
    #38830860
Calabonga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
Не совсем понимаю, для чего писать свой собственный форум, но тем не менее вот Yet Another Forum , который Open Source с исходниками на GitHub'е
...
Рейтинг: 0 / 0
11.12.2014, 08:41
    #38830901
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает поток.
ИМХО автор топика пытается перенести код из desktop приложения в ASP.NET приложение, при этом ничего о последних не знает.

Ему бы рассказать, что есть на входе, что нужно получить на выходе, и спросить о том, как это лучше реализовать, но он поступил иначе.
Как многие другие новички.
Бросился что-то писать, у него получается не работающая фигня, и он спрашивает, почему фигня-то не работает?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не работает поток. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]