Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Следящий поток / 15 сообщений из 15, страница 1 из 1
30.12.2003, 12:49
    #32366846
Aeon Technologies
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
привествую!
в наличии asp.net (c#)

задача: запускать некоторую процудуру через заданный промежуток времени... посоветовали делать через потоки. вот сутки рою по интернету, найти ничего не могу. как и где инициировать запуск потока, что бы он циркулировал все время?

заранее благодарю.
...
Рейтинг: 0 / 0
30.12.2003, 13:02
    #32366867
Aeon Technologies
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
вопрос даже так поставлю: где инициировать этот поток?
...
Рейтинг: 0 / 0
30.12.2003, 13:10
    #32366878
Yola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
Думаю, что это должен быть какой-то сервис в виндах, типа шедулера, который и запускает все что надо по расписание. Даже не знаю, можно ли, что-то такое сделать где-то на хостинге с обычными правами на доступ к твоей папке и бд.
...
Рейтинг: 0 / 0
30.12.2003, 13:10
    #32366879
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
запустить можно по событию старта приложения (global.asax). однако когда приложение закончит работу, то будет принудительно остановлен и поток. так что "все время" - это время жизни приложения.
...
Рейтинг: 0 / 0
30.12.2003, 13:25
    #32366898
Aeon Technologies
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
to Кузя: время жизни аппликации? не сесии? то есть визиторов на сайте ноль, будет ли крутится такая фишка?
...
Рейтинг: 0 / 0
31.12.2003, 03:05
    #32367343
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
приложение живет до тех пор, пока есть хотя бы одна сессия. внутри потока можно искусственно поддерживать сессию, например, периодически опрашивая к.л. страницу. однако остается вопрос с запуском приложения.
...
Рейтинг: 0 / 0
31.12.2003, 09:29
    #32367377
Yola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
Неа, рибята. Главный вапрос в том, какой поток и как запускать.

Приведите мне пример кода запуска потока, который раз в час будет вызывать мою страничку или делать какие-то другие действия.
...
Рейтинг: 0 / 0
31.12.2003, 16:24
    #32367592
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
2Yola

в Global.asax:
Код: plaintext
1.
2.
3.
4.
5.
protected void Application_Start(Object sender, EventArgs e)
{
  clsMain cm=new clsMain();
  cm.Start();
  Application[ "clsMain" ]=cm; // чтобы была ссылка на класс (анти-GC)
}

класс с потоком:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class clsMain
{
  private System.Threading.Thread           thr;
  private System.Threading.ManualResetEvent mse=new ManualResetEvent(false);
		
  public clsMain()
  { thr=new System.Threading.Thread(new ThreadStart(mainThread));
  }
		
  public void Start()
  { thr.Start();
  }
				
  public void mainThread()
  { do
    {	
      ...
      // вот здесь и дергай страницу
      HttpWebResponse wrs=(HttpWebResponse)(WebRequest.Create( "http://localhost/имя_приложения/имя_страницы.aspx" ).GetResponse());
      wrs.Close();
    } while(!this.mse.WaitOne( 60 * 1000 , false));
  }
}

причем страницу надо дергать не "раз в час" а не реже timeout'а времени жизни сессии по бездействию. так что вопрос не как запустить поток, а как запустить приложение при старте IIS
...
Рейтинг: 0 / 0
05.01.2004, 09:26
    #32368278
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
может можно использовать зависимости в службах NT?
...
Рейтинг: 0 / 0
05.01.2004, 13:07
    #32368477
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
Это самый лучший способ - сделать свой сервис NT, в рамках которого и будет крутиться "следящий" поток (взаимодействие с ним - по remoting). Однако способ хорош при своем хостинге. Если хостинг у дяди-провайдера, то могут возникнуть трудности...
...
Рейтинг: 0 / 0
06.01.2004, 08:48
    #32369068
Aeon Technologies
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
спасибо всем кто откликнулся, раньше не писал, переинсталлил систему и на работе и на лаптопе. так сказать в новый год со свежей системемой :)


я вот накрапал вот так:

в глобал асах:

protected void Application_Start(Object sender, EventArgs e)
{
Thread backgroundThread = new Thread(new ThreadStart(my));
backgroundThread.Start();
}



protected void my()
{
while (true)
{
//something execute here
Thread.Sleep(60000);
}
}

будте добры покритикуйте, а может и запостите улучшенный гибрид. думаю польза будет всем :)

Благодарю всех.
...
Рейтинг: 0 / 0
31.10.2004, 12:34
    #32762283
stt
stt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
я так сделал (global.asax):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public Timer timer;

protected void Application_Start(Object s, EventArgs e)
{
    timer = new Timer(new TimerCallback(move), null,  0 ,  100000 );
}

static void move(Object state) 
{
    // мой код
}
...
Рейтинг: 0 / 0
01.11.2004, 00:33
    #32762442
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
кузяприложение живет до тех пор, пока есть хотя бы одна сессия. внутри потока можно искусственно поддерживать сессию, например, периодически опрашивая к.л. страницу. однако остается вопрос с запуском приложения.

Application да, а домен приложения остаётся жить ещё очень долго :)
...
Рейтинг: 0 / 0
02.11.2004, 14:04
    #32764995
marina milanina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
Есть очень простой вариант
В шедулер (виндовый) ставится задача запуска браузера, открывающего нужную вам страничку, которая выполняет нужную вам задачу. Все.
...
Рейтинг: 0 / 0
03.02.2005, 09:57
    #32898451
Aeon Technologies
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Следящий поток
в продолжении темы. есть у нас проца, которая крутится в своем thread-е, которую мы вызываем каждых 5 минут. нуна эту процу вызывать в произвольное время из вебсервиса, но в _ее_ треде. то есть нуна поток каким-то образом разбудить. пока в голову пришла такая мысля: в Application записывать секунды, процу вызывать каждую секунду, перед выполнением кода процы считывать значение из апликейшена и уменьшать счетчик на единицу, соответсвенно если счетчик меньше нуля, запускаем код процы и ставим счетчик опять на 5 минут. в своб очередь если нам нуна вызвать поток, мы записываем в апликейшн 0, и через секунду потом схавает это значение и выполнит свою работу.

каким образом можно реализовать функциональность более "человечными" способами.

сенкс.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Следящий поток / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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