Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум .NET > Форум C# .NET > Форум C# для начинающих
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 24.07.2011, 23:08   #1
Orion2011
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 94
Репутация: 2 (2)
зависает программа при отправке сообщения / C# для начинающих

срабатывает метод, а в методе скрипт для отправки сообщения, и сообщение приходит не одно , а непрерывно приходят по 3-5 и программа зависает, как сделать , что б приходило одно сообщение?

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 if ((u == true) && (v == true))
                              {
                                  button2.Enabled = false;
                                  if (button2.Enabled == false)
                                  {
                                      for (int k = 0; k <= 1; k++)
                                      {
                                          // Готовим Мэил сообщение
                                          MailAddress from = new MailAddress("pimati@mail.ru");
                                          MailAddress to = new MailAddress("pimati@yandex.ru");
                                          MailMessage message = new MailMessage(from, to);
 
                                          // Прикрепление файла
                                          //string _file = @"C:\123.txt";
                                          //Attachment attachment = new Attachment(_file, MediaTypeNames.Application.Octet);
                                          //message.Attachments.Add(attachment);
 
 
                                          // Сообщение
                                          message.Subject = "сработал датчик движения";
                                          message.Body = "привет2";
 
                                          // Указываем клиент сервера и порт
                                          SmtpClient client = new SmtpClient("smtp.mail.ru", 25);
                                          client.Credentials = new NetworkCredential("pimati@mail.ru", "пароль");//авторизация
 
                                          // Отправляем сообщение
                                          client.Send(message);
 
                                          // Освобождаем ресурсы
                                          message.Dispose(); 
                                      }
                                      
                                  }
 
Старый 24.07.2011, 23:25   #2
FakiR
Level 2
 
Аватар для FakiR
 
Регистрация: 22.11.2010
Сообщений: 735
Репутация: 379 (253)
Записей в блоге: 1
Лучшие ответы: 3
зависает программа при отправке сообщения

если честно не пойму зачем тут нужен цикл for?

Добавлено через 1 минуту
в крайнем случае, судя по коду, должно приходить 2 сообщения, если не ошибаюсь...
PS - попробуйте просто цикл убрать

Добавлено через 2 минуты
Код C#
1
2
3
4
if (button2.Enabled == false)
                                  {
                                      for (int k = 0; k <= 1; k++)
                                      {
вот эти строки помоему можно в данном случае
Другие темы раздела Форум начинающих программистов C#. Вопросы по C#.NET от начинающих. Помощь студентам и школьникам в решении задач.
Какие вопросы могут задать на собеседовании по C# для начинающего программиста C#
Подскажите пожалуиста, какие вопросы могут задать на собеседовании по C# для начинающего программиста? ПС: Буду рад услышать полезые советы так же
C# HTML-страница в mshtml.HTMLDocument - как?
Сабж. Есть html-страничка, полученная через httpweb(req/res), ее необходимо преобразовать в объект типа mshtml.HTMLDocument, чтобы можно было легко получать доступ к элементам документа, формам и тд. Например - doc.GetElementById ("test"); Гуглил, решения есть, но нерабочие.
Старый 24.07.2011, 23:40   #3
Smekalisty
Форумчанин
 
Аватар для Smekalisty
 
Регистрация: 23.04.2010
Сообщений: 93
Репутация: 30 (30)
Лучшие ответы: 1
зависает программа при отправке сообщения

должно отправляться 1 раз, наверника это функция отправки и вызывается 3 - 5 раз.
если u v после отправки не нужны, попробуй

Код C#
1
2
3
4
5
// Отправляем сообщение
client.Send(message);
u = v = false;
// Освобождаем ресурсы
message.Dispose();
Старый 24.07.2011, 23:46  [ТС]   #4
Orion2011
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 94
Репутация: 2 (2)
зависает программа при отправке сообщения

FakiR, да побывал я и с циклом и без, программа шлет сообщения и потом зависает
Старый 24.07.2011, 23:46
Google
Объявления
Старый 24.07.2011, 23:47   #5
FakiR
Level 2
 
Аватар для FakiR
 
Регистрация: 22.11.2010
Сообщений: 735
Репутация: 379 (253)
Записей в блоге: 1
Лучшие ответы: 3
зависает программа при отправке сообщения

Цитата Сообщение от Orion2011 Посмотреть сообщение
FakiR, да побывал я и с циклом и без, программа шлет сообщения и потом зависает
напишите код вызова метода
Старый 25.07.2011, 00:23  [ТС]   #6
Orion2011
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 94
Репутация: 2 (2)
зависает программа при отправке сообщения

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
        private void timer1_Tick(object sender, EventArgs e)
        {
            
             if (timer1busy == false )
             {
                timer1busy = true;
                int DI_value;
                int i, j;
                for (j = 0; j <= 3; j++)
                {
                    //input value and show by red or gray point             
                    DI_value = ~(PISODIO.InputByte(wBaseAddr + 0xC0 + 0x4 * (uint)j));
                    for (i = 1; i <= 8; i++)
                    {         
                        if ((DI_value & (0x1 << (i - 1))) >= 1)
                        {   
                            ((PictureBox)mpbi[i + 8 * j]).Image = pbRed.Image;
                            if (((PictureBox)mpbi[6 - 1]).Image == pbRed.Image)
                            {
 
                                u = true;
                                v = true;
                                button2.Enabled = true;
                            }                           
                     }
                        else
                        {
                            ((PictureBox)mpbi[i + 8 * j]).Image = pbGray.Image;
 
                            if (((PictureBox)mpbi[6 - 1]).Image == pbGray.Image)
                            {
                              
 
                              if ((u == true) && (v == true))
                              {
                                  button2.Enabled = false;
                                  if (button2.Enabled == false)
                                  {
                                      for (int k = 0; k <= 1; k++)
                                      {
                                          // Готовим Мэил сообщение
                                          MailAddress from = new MailAddress("pimati@mail.ru");
                                          MailAddress to = new MailAddress("pimati@yandex.ru");
                                          MailMessage message = new MailMessage(from, to);
 
                                          // Прикрепление файла
                                          //string _file = @"C:\123.txt";
                                          //Attachment attachment = new Attachment(_file, MediaTypeNames.Application.Octet);
                                          //message.Attachments.Add(attachment);
 
 
                                          // Сообщение
                                          message.Subject = "сработал датчик движения";
                                          message.Body = "привет2";
 
                                          // Указываем клиент сервера и порт
                                          SmtpClient client = new SmtpClient("smtp.mail.ru", 25);
                                          client.Credentials = new NetworkCredential("pimati@mail.ru", "пароль");//авторизация
 
                                          // Отправляем сообщение
                                          client.Send(message);
 
                                          // Освобождаем ресурсы
                                          message.Dispose(); 
                                      }
                                      
                                  }
                              }
                             
                         }
                      }
                   }
                }    
                timer1busy = false;
             }    
        }
у меня в компе стоит плата, и к ней датчик приделан , он срабатывает от лазерной указки, т.е для запуска программы свет на датчик не попадает следовательно с начало почта не приходит, потом свет попадает и при разрыве света приходит сообщение, потом свет опять попадает и сообщение не приходит.если скрипт отправки сообщения убрать, кнопка мигает правильно . Тут может в самом коде отправки сообщения дело.

Добавлено через 19 минут
спасибо, разобрался помог Smekalisty
Старый 25.07.2011, 00:29   #7
Smekalisty
Форумчанин
 
Аватар для Smekalisty
 
Регистрация: 23.04.2010
Сообщений: 93
Репутация: 30 (30)
Лучшие ответы: 1
зависает программа при отправке сообщения

незнаю, что за датчик, и что за символы ~ & << у тебя на С#

сама отправка сообщения у тебя в 2 циклах, запускается 3*8 раз, достаточно что бы 1 раз выполнилось условия u и v = true - и сообщение будет скидываться. А кнопка из enabled в disabled меняется так быстро что ты на форме этого и не заметишь. Предусмотрти тут же else-ом u и v в false

Код C#
1
2
3
4
5
6
7
8
if (((PictureBox)mpbi[6 - 1]).Image == pbRed.Image)
{
u = true;
v = true;
button2.Enabled = true;
}
else
 u = v = button2.Enabled = false;
ещё возможно таймер запускает
Старый 25.07.2011, 01:05   #8
umnick_kh
Форумчанин
umnick_kh вне форума  
Ответ Создать новую тему

Похожие темы
Тема Автор
Joomla chronoforms ошибка при отправке сообщения
При попытке поcетителя сайта отправить сообщение через форму ChronoForms - 4.0 RC3.4.1 ему выводится сообщение о внутренней ошибке сервера 500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the...
Mirra88
C# .NET Зависает программа при отправке запроса
Доброе время. Вот проблемка(( При отправки запроса начинает виснуть программа( Вот код запроса: WebClient client = new WebClient();
sasha0192
C# под Web, ASP.NET MVC Ошибка при отправке e-mail сообщения
@{ try { WebMail.SmtpServer = "smtp.google.com"; WebMail.SmtpPort = 587; WebMail.EnableSsl = true; WebMail.UserName = "Здесь должен быть логин?"; WebMail.Password = "Здесь должен быть пароль?"; ...
ayrat_net
VBA Изменить поле "От:" при отправке сообщения из Excel
Добрый день! По работе приходится рассылать письма по филиалам, вопросы по которым должны задавать не мне, а другому человеку. В связи с этим хотелось бы в макросе excel изменить адрес в поле "отправитель" на другой. Каким образом это можно сделать? Заранее спасибо!
Minus
Visual C++ Зависает программа при отправке по FTP
Здравствуйте! У меня проблема с отлаженной программой: Работает вначале нормально но через некоторое время при отправке файлов по FTP зависает. Я использую классы MFC CInternetSession session; CFtpConnection *cp; Но после перезагрузки компьютера программа работает некоторое время и опять...
Zhanibek
Опции темы

Текущее время: 14:01. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.