|
[C#] проблема с таймером и процессами - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
10.09.2011, 19:54
|
#1
|
|
|
|
Разведчик
|
Регистрация: 08.03.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
|
[C#] проблема с таймером и процессами
Доброго времени суток!
Внизу выложен код программы,которая по идее должна каждые 100 миллисекунд проверять открыт ли процесс с именем launcher и если да, то открывать test.exe. Тестила, проверяет и открывает...Но получается что-то вроде бесконечного цикла и тест.ехе начинает открываться бесконечное кол-во раз...Я ставила переменную proc, которая вроде должна была тормозить все это дело,но все равно тест.ехе открывается бесконечно...
Помогите, пожалуйста.
Заранее спасибо.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool proc = false;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Process.Start(@"D:\test.exe");
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
if (proc == false)
{
System.Diagnostics.Process[] processes;
processes = Process.GetProcessesByName("launcher");
foreach (System.Diagnostics.Process instance in processes)
{
listBox1.Items.Add(instance.ProcessName);
if (instance.ProcessName == "launcher")
{
Process.Start(@"D:\test.exe");
proc = true;
}
}
}
}
}
}
|
|
|
10.09.2011, 20:01
|
#2
|
|
|
|
Разведчик
|
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] проблема с таймером и процессами
Не знаю что у тебя за баги, но чем их искать лучше просто использовать timer1.Stop();
И когда работаешь с булевскими переменными (это бред конечно, но меня почему-то задело ) условия удобнее проверять так:
..До чего меня простуда довела хД
//added 20:10
Да что ж такое, не хочу я думать
//added 20:11
Наверное с компилером не так что, если он timer.Stop() игнорит
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
Последний раз редактировалось •theSaboteur•; 10.09.2011 в 20:10.
|
|
|
10.09.2011, 20:18
|
#3
|
|
|
|
Разведчик
|
Регистрация: 08.03.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [C#] проблема с таймером и процессами
сами исходники или код?тот код,который я скинула - весь....быть может оно бесконечно запускается,потому что я лаунчер открываю и он остается открытым?хотя проверка с буловскими переменными и стоп таймера должны были все тормознуть...
|
|
|
10.09.2011, 20:23
|
#4
|
|
|
|
Разведчик
|
Регистрация: 08.03.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: [C#] проблема с таймером и процессами
Выдает ошибки...типа в текущем контексте не существует,сейчас скину...
|
|
|
10.09.2011, 20:23
|
#5
|
|
|
|
Разведчик
|
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] проблема с таймером и процессами
fanat2010 да тут уже вопрос скорее в том, какого черта компилер игнорирует timer1.Stop();
Интересно, черт подери хД
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
|
|
|
10.09.2011, 20:27
|
#6
|
|
|
|
Разведчик
|
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] проблема с таймером и процессами
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
|
|
|
10.09.2011, 20:48
|
#7
|
|
|
|
Разведчик
|
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: [C#] проблема с таймером и процессами
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Process.Start(@"D:\некромантия\WindowsFormsApplication4\WindowsFormsApplication4\bin\Debug\HimeraPW.exe");
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process[] processes;
processes = Process.GetProcessesByName("AIMP3");
foreach (System.Diagnostics.Process instance in processes)
{
listBox1.Items.Add(instance.ProcessName);
M
Process.Start(@"D:\некромантия\WindowsFormsApplication4\WindowsFormsApplication4\bin\Debug\HimeraPW.exe");
timer1.Stop();
}
}
}
Проблемма была в том, что цикл запускался из за свойства таймера Enabled установленного в true, и посему timer1.Stop() бессилен)
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:48.
|
|