最近、この小さな Windows フォーム アプリケーションを作成しました。
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 つのボタン (開始と停止) があります。
今、私はそれを実行して、遅延を 1000ms に設定してみました。
「停止」ボタンを押すと、完全に停止し、メッセージが送信されなくなります。
しかし、たとえば 100 ミリ秒などの非常に小さな遅延を遅延に入力すると、[停止] を押しても何も起こりません。クリックするのも少し難しく、クリックしてもメッセージの送信が停止しません。
どうしてこれなの?そしてどうにか解決できないでしょうか?