Недавно я сделал это небольшое приложение Windows Forms:
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.Threading;
namespace Spammer
{
public partial class Form1 : Form
{
Thread t1;
int delay, y = 1;
public Form1()
{
t1 = new Thread(send);
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
delay = int.Parse(textBox2.Text);
t1.Start();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
y = 0;
}
private void send()
{
while (y == 1)
{
String textt = textBox1.Text;
Thread.Sleep(delay);
SendKeys.SendWait(textt);
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
Теперь это выглядит так:
Он имеет текстовое поле «Задержка», текстовое поле «Текст для отправки» и 2 кнопки: «Пуск» и «Стоп».
Теперь я попытался запустить его и установить задержку на 1000 мс.
Когда я нажимаю кнопку "Стоп", он отлично останавливается, и сообщения больше не отправляются.
Но когда я ввожу в задержку очень маленькие задержки, например, 100 мс, нажатие «Стоп» ничего не делает. Даже как-то сложно щелкнуть по нему, и даже когда я нажимаю, не прекращается отправка сообщений.
Почему это? И можно ли это как-то решить?