C#当调用了另一个类中的静态方法时,如何通知一个类(简单的true/false)

本文关键字:通知 一个 false true 简单 另一个 调用 静态方法 何通知 | 更新日期: 2023-09-27 18:04:09

  • 问题:

    当ping运行时,我如何通知/更新我的winform(这将改变我假设的发送指示符(?

  • 场景:

    假设我有线程正在向计算机发送ping。而主线程显示/负责winform gui-完全独立的类。

    1. 我有一个WinForm,它显示两个小状态指示器(发送和接收(
    2. 我有一个类B,它有一个静态方法Ping()
    3. 我有一个不断运行Ping()的线程派生

C#当调用了另一个类中的静态方法时,如何通知一个类(简单的true/false)

最好使用"events",看看微软提供的示例代码,http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71(.aspx

这里的大多数人都建议使用事件来实现这一点。

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();
    }
}
相关文章: