Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с таимером, перестает работать 
:(
    Опции темы
kobra
Дата 21.11.2010, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



здравствуете 
 сделал такое тест приложение.
Код

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Class1 c;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            c = new Class1();
        }
    }
}
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    class Class1
    { 
        private string _ReturnText;

        public Class1()
        {
            StartTimer();
        }

        private void StartTimer()
        {
            try
            {
                System.Diagnostics.EventLog.WriteEntry("test",
                        "Timer start!",
                        System.Diagnostics.EventLogEntryType.Information);
                System.Threading.Timer timer =
                    new System.Threading.Timer(CloseDay, null, new TimeSpan(0, 0, 0, 30), new TimeSpan(0, 0, 2, 0));
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("test",
                        "Exception: " + ex.Message,
                        System.Diagnostics.EventLogEntryType.Error);
            }
        }

        private void CloseDay(object obj)
        {           
            try
            {
                System.Diagnostics.EventLog.WriteEntry("test",
                        "Procedure \"Close day\" start!",
                        System.Diagnostics.EventLogEntryType.Information);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("test",
                       "Exception: " + ex.Message,
                       System.Diagnostics.EventLogEntryType.Error);
            }
        }
    }
}

через 10 часов перестала писать в логи. не ошибки, не ругани, просто перестала писать.
дело в том что реальное приложение, которое по таймеру делает резервное копирование и закрытие дня, не держится, и никак не пойму куда капать. правда один раз выкинула что-то вроде этого
Цитата

EventType clr20r3, P1 tas.exe, P2 1.5.0.0, P3 33, P4 mscorlib, P5 2.0.0.0, P6 4889dc80, P7 e2, P8 10, P9 system.invalidoperationexception, P10 NIL.

в чем может быть причина? 



Это сообщение отредактировал(а) kobra - 21.11.2010, 13:32
PM MAIL   Вверх
Мурлыкатам_
Дата 8.12.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 5.2.2007
Где: город-герой Минск

Репутация: нет
Всего: 2



делай while(true) и не парься smile

Проблема скорее всего в том, что CLR убила таймер в тихую smile

Может проще дернуть приложение планировщиком задач виндовс, какой смысл в бесмыссленно висящем приложении в памяти?

А приложение с формой упало, когда таймер перестал писать?

Это сообщение отредактировал(а) Мурлыкатам_ - 8.12.2010, 14:24


--------------------
Хочешь что-то сделать - сделай это сам или попроси помощи на винграде smile
user posted image
PM MAIL ICQ   Вверх
jonie
Дата 8.12.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Код

System.Threading.Timer timer =
                    new System.Threading.Timer(
ссылку на таймер сделайте членом класса, я об этом где-то на хабре уже писал, и также об этом писал Рихтер в C# via CLR....
Цитата


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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.