2

私のタイトルが具体的かどうかはわかりませんが、私の問題は、メソッドに対するアクションを実行するために 1 秒 (1000 ミリ秒) 待ちたいということです。以前にタイマーを使用したことはありませんが、次のようなことをしていることがわかります。

aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

次に、OnTimedEvent メソッドを定義します。

private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
    Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}

要点は、呼び出したいメソッドが 5 つの引数を受け取り、これまでに見たすべての例でオブジェクト ソース ElapsedEventArgs を使用していることです。メソッドを呼び出して、1 秒経過後にその引数を送信する方法を知りたいです。どうもありがとうございました!

4

4 に答える 4

0

やりたいことをするためにタイマーを延長することを考えたことはありますか? サンプルコードは次のとおりです。

 class Program
{



    static void Main(string[] args)
    {
        TimerEx timer = new TimerEx(1000, 1, 2, 3, 4, 5);
        timer.ElapsedEx += new ElapsedExEventHandler(timer_ElapsedEx);
        timer.Start();


        Console.ReadKey();
    }

    static void timer_ElapsedEx(object sender, ElapsedEventArgsEx e)
    {
        Console.WriteLine(e.P1.ToString());
    }



    public delegate void ElapsedExEventHandler(object sender, ElapsedEventArgsEx e);

    public class TimerEx : System.Timers.Timer
    {
        private ElapsedEventArgsEx e;

        public TimerEx(double interval, object p1, object p2, object p3, object p4, object p5) : base(interval)
        {
            e = new ElapsedEventArgsEx() { P1 = p1, P2 = p2, P3 = p3, P4 = p4, P5 = p5 };
            this.Elapsed += new ElapsedEventHandler(TimerEx_Elapsed);
        }

        void TimerEx_Elapsed(object sender, ElapsedEventArgs e)
        {
            this.OnElapsedEx(e.SignalTime);
        }



        public event ElapsedExEventHandler ElapsedEx;
        private void OnElapsedEx(DateTime signalTime)
        {
            var handler = this.ElapsedEx;
            if (handler != null)
            {
                e.SignalTime = signalTime;
                handler(this, e);
            }
        }
    }

    public class ElapsedEventArgsEx : EventArgs
    {
        public ElapsedEventArgsEx()
        {

        }

        public DateTime SignalTime { get; set; }
        public object P1 { get; set; }
        public object P2 { get; set; }
        public object P3 { get; set; }
        public object P4 { get; set; }
        public object P5 { get; set; }
    }

    }
于 2013-04-26T22:10:07.643 に答える