好的,我正在努力实现一组自定义事件。它们将主要用于多线程环境,以在整个线程中传达主要成就。现在我现在有了这个简单的设置:
public delegate void TestEventHandler(object sender, TestEventArgs e);
public class Test
{
bool _stopTesting = false;
int _runs = 0;
public event TestEventHandler Tester;
protected virtual void OnTest(TestEventArgs e)
{
TestEventHandler hand = Tester;
if (hand != null)
hand(this, e);
}
public void StartTest()
{
while (!_stopTesting)
{
_runs++;
TestEventArgs e = new TestEventArgs(true, 100000);
OnTest(e);
}
}
}
public class TestMe
{
public void TestMeHard(object sender, TestEventArgs e)
{
Test check = sender as Test;
Console.WriteLine(e.Message);
}
}
事件 args 类在别处定义。我的问题是,sender
对象线程是否安全,请原谅这个愚蠢的问题,但sender
对象是引用还是副本?发送者对象的任何更改是否会反映在触发事件的实际对象中?