public void timer_thing()
{
Thread timer = new Thread(new ThreadStart(() =>
{
Thread.Sleep(500);
if (is_mouse_down)
timer1.Enabled = true;
}
));
timer.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
//some stuff happens here
}
ご覧のとおり、スレッドがタイマーをアクティブにします。しかし、タイマーは作動しません。私はこれが正しい方法ではないと思う。それとも私は何かが欠けている。C#WinForms:スレッドからタイマーをアクティブにする
Control.MouseDownイベントがスレッドをアクティブにします。私は2つのタイマーを使用してみました(最初のタイマーはしばらくしてから2番目のタイマーを起動し、それ自身を非アクティブにします)。しかし、私がタイマでThread.Sleep(int)を使用すると、プログラム全体が一時停止します。だから、私はスレッドで試しています。 – AlexSavAlexandrov
したがって、 'MouseDown'イベントから、500ms待つタイマー' A'をアクティブにします。 'Tick'イベントがタイマーAから来たら、タイマーBを起動することができます。 –
何かをする前にタイマーをしばらくお待ちください...しかしどうですか?私は、タイマでThread.Sleep(int)を使用すると、プログラム全体が一時停止すると書いていました。そして、タイマーを動作させる前にタイマーを待つように教えてください...私はC#で実際に経験していないので、短い答えでいつも助けになるとは限りません。 – AlexSavAlexandrov