Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
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:08
AdAgent
Объявления
24.07.2011, 23:25   #2
FakiR
Level 2
Регистрация: 22.11.2010
Сообщений: 735
Репутация: 380 (254)
Записей в блоге: 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#
Подскажите пожалуиста, какие вопросы могут задать на собеседовании по C# для начинающего программиста? ПС: Буду рад услышать полезые советы так же
C# HTML-страница в mshtml.HTMLDocument - как?
Сабж. Есть html-страничка, полученная через httpweb(req/res), ее необходимо преобразовать в объект типа mshtml.HTMLDocument, чтобы можно было легко получать доступ к элементам документа, формам и тд. Например - doc.GetElementById ("test"); Гуглил, решения есть, но нерабочие.
24.07.2011, 23:40   #3
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
AdAgent
Объявления
24.07.2011, 23:47   #5
FakiR
Level 2
Регистрация: 22.11.2010
Сообщений: 735
Репутация: 380 (254)
Записей в блоге: 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
Форумчанин
Регистрация: 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 вне форума  
25.07.2011, 01:05
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C#: Исключение при отправке сообщения
При отправке сообщения появляется исключение: Client does not have permissions to send as this sender. Какие будут советы? public static void Main() { SmtpClient client = new SmtpClient("mail", 25); client.UseDefaultCredentials = false; client.Credentials = new...
C# для начинающих buntar 11.04.2013 17:23
PHP: Вывод сообщения при отправке формы
Здесь я принимаю форму и записываю в файл <?php define('GUEST','guest.txt'); if($_SERVER=="POST"){ if($_POST == $_POST) { $name = $_POST; $text = $_POST; $ff = "$name $text ".date('d.m.Y')."\n"; file_put_contents(GUEST,$ff,FILE_APPEND); header('Location:'.$_SERVER);
PHP для начинающих ramm 22.03.2013 01:36
C#: Зависает программа при отправке запроса
Доброе время. Вот проблемка(( При отправки запроса начинает виснуть программа( Вот код запроса: WebClient client = new WebClient();
C# .NET sasha0192 01.04.2012 21:46
C# ASP.NET: Ошибка при отправке e-mail сообщения
@{ try { WebMail.SmtpServer = "smtp.google.com"; WebMail.SmtpPort = 587; WebMail.EnableSsl = true; WebMail.UserName = "Здесь должен быть логин?"; WebMail.Password = "Здесь должен быть пароль?"; ...
C# под Web, ASP.NET MVC ayrat_net 20.02.2012 01:41
Visual C++: Зависает программа при отправке по FTP
Здравствуйте! У меня проблема с отлаженной программой: Работает вначале нормально но через некоторое время при отправке файлов по FTP зависает. Я использую классы MFC CInternetSession session; CFtpConnection *cp; Но после перезагрузки компьютера программа работает некоторое время и опять...
Visual C++ Zhanibek 23.02.2009 12:11
Опции темы

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

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