问题:
当 ping 运行时,我如何通知/更新我的 winform(这会改变我假设的发送指示器)?
设想:
假设我的线程已关闭向计算机发送 ping。而主线程正在显示/负责winform gui - 完全独立的类。
- 我有一个显示两个小状态指示器的WinForm (发送和接收)
- 我有一个
B
具有静态方法的类Ping()
- 我有一个不断运行的线程生成
Ping()
问问题
177 次
2 回答
1
你最好使用“事件”,看看微软提供的示例代码, 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 回答