1
  • 質問:

    pingが実行されたときにwinformに通知/更新するにはどうすればよいですか(これにより、仮想の送信インジケーターが変更されます)?

  • シナリオ:

    コンピューターにpingを送信していないスレッドがあるとします。メインスレッドがwinformguiを表示/担当している間-完全に別個のクラス。

    1. 2つの小さなステータスインジケーター(送信と受信)を表示するWinFormがあります
    2. B静的メソッドを持つクラスがありますPing()
    3. 継続的に実行されるスレッドスポーンがありますPing()
4

2 に答える 2

1

「イベント」を使用するのが最適です。Microsoftが提供するサンプルコードhttp://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspxをご覧ください。

于 2013-03-16T20:07:20.973 に答える
0

ここにいるほとんどの人がイベントを使用してそれを行うことを提案しているように。

public partial class Form1: Form {
    public Form1() {
        InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e) {
        Sample sample=new Sample();
        sample.SampleEvent+=sample_SampleEvent;
        sample.SampleMethod();
    }

    private void sample_SampleEvent() {
        Console.WriteLine("SampleMethod has been executed and the method on the WinForm has been notified about it.");
    }
}

public class Sample {
    public event SampleEventHandle SampleEvent;
    protected virtual void OnSampleEvent() {
        var handler=SampleEvent;
        if(handler!=null)
            handler();
    }

    public delegate void SampleEventHandle();


    public void SampleMethod() {
        OnSampleEvent();
    }
}
于 2013-03-16T20:10:19.967 に答える