0

内部でClientModify操作を行うModifyメソッドがあります

 public bool Modify()
{
bool retval = false;

retval = Spa.ClientModify(col);

}

ここで私が望んでいたのは、イベントハンドラ「ServerEvents」で 3 つのイベントが完了した後にのみ ClientModify を実行する必要があることです。それ以外の場合は、retval を false として返す必要があります。

static private void ServerEvents(eventType type, event this_event, object passback)
{

         if (this_event.type == eventType.SPD_spurtEvent)
        { 

           if (this_event.objectName == "ready")
            {                  
           // some operation 
            }
           else if (this_event.objectName == "info")
            {
           // some operation
            }

           else if (this_event.objectName == "serverstate")
            {
           // some operation
            }
        }

}

イベントハンドラ "ServerEvents" に変数 bool Yes= false を追加し、このチェックが完了したら、else if (this_event.objectName == "serverstate") を yes=true にしましたが、ここで直面している問題はModify() メソッド内で yes ブール変数を取得できません。ServerEvents を取得しますが、インスタンス化できません。どうすればこれを行うことができますか、またはそのための他のメカニズムがあります

4

1 に答える 1

2

3 つのメソッドが完了したかどうかを確認する必要があり、それらが現在確認できる変更されたプロパティの痕跡を残していない場合は、それぞれの実行時にいくつかのプロパティを変更する必要があります。これらのイベントが実行されたかどうかを確認するには、変更メソッドでこれらの各プロパティを確認してください。

public class MyState
{
    public bool Method1HasExecuted { get; set; }
    public bool Method2HasExecuted { get; set; }
    public bool Method3HasExecuted { get; set; }
}

public class MyClass
{
    public MyState MyClassState { get; set; }

    public void Method1() { MyClassState.Method1HasExecuted = true; }
    public void Method2() { MyClassState.Method2HasExecuted = true; }
    public void Method3() { MyClassState.Method3HasExecuted = true; }

    public bool Modify()
    {
        return MyClassState.Method1HasExecuted && MyClassState.Method2HasExecuted && MyClassState.Method3HasExecuted ? Spa.ClientModify() : false;
    }
}
于 2010-08-23T13:27:29.550 に答える