-3

stringMSDNサイトとすべてを読みましたが、またはの引数を受け入れる時限イベントを発生させる方法についての簡単な説明が見つかりませんdouble。提供されている例は使用してElapsedEventArgsいますが、発生したイベントに独自の引数を実装する良い方法を示しているものはありません。

私のコード(テストしていないので間違っているかもしれません):

private double Pressure_Effect(double p, int t){
        time=(double) t;
        v=(((p/(rho*y))-g)*time)/(1.0+(mu*time/(rho*y*x)));
        return v;

    }
    private void Time_Handle(){
        System.Timers.Timer startTimer=new System.Timers.Timer(70);
        startTimer.Elapsed += new ElapsedEventHandler(Activate_Pressure);

    }
    private void Activate_Pressure(object source, ElapsedEventArgs e){
        pressure=2.5;
        double v=Pressure_Effect(pressure, 70);

    }

私がやりたいのは、方法がわからないActivate_Pressureイベントを直接渡すことができるかどうかという意味です。Pressure_Effect私はC#が初めてなので、ご容赦ください。タイマーを有効にしておらず、このコードに他の重要な部分が欠けている可能性があることはわかっていますが、質問を明確にするために投稿しました。

4

2 に答える 2

4

したがって、コメント スレッドに基づいて、次のようなことが起こっていることがわかります。

class PressureModel
{
    private double interval = 70;
    private double pressure = 2.5;
    private DateTime startTime;
    private Timer timer;

    // assuming rho, y, g, x, and mu are defined somewhere in here?

    public PressureModel()
    {
        timer = new Timer(interval);
        timer.Elapsed += (sender, args) => PressureEvent(sender, args);
    }

    public void TimerStart() 
    {
        startTime = DateTime.Now;
        timer.Start();
    }

    public void TimerStop()
    {
        timer.Stop();
    }

    private void PressureEvent(object sender, ElapsedEventArgs args)
    {
        // calculate total elapsed time in ms
        double time = (double)((args.SignalTime - startTime).TotalMilliseconds);
        // calculate v
        double v = CalculateV(time);
        //
        ... do you other work here ...
    }

    private double CalculateV(double time)
    {
        double p = this.pressure;
        // not sure where the other variables come from...
        return (((p/(rho*y))-g)*time)/(1.0+(mu*time/(rho*y*x)));
    }
}

PressureEventもう少し別れるのも悪くないと思います。v特定のパラメーターを指定して、独自に計算する関数を引き続き保持し、その後v、独自のメソッドになる可能性がある場合は、必要な他のことをすべて行います。

于 2013-08-20T16:08:17.153 に答える