Использование myusus EventArgs, например:
public event EventHandler<MyEventArgs> SampleEvent;
из msdn, например:
public class HasEvent
{
// Declare an event of delegate type EventHandler of
// MyEventArgs.
public event EventHandler<MyEventArgs> SampleEvent;
public void DemoEvent(string val)
{
// Copy to a temporary variable to be thread-safe.
EventHandler<MyEventArgs> temp = SampleEvent;
if (temp != null)
temp(this, new MyEventArgs(val));
}
}
У меня вопрос 2:
1) глядя на отмеченный код:
Я не вижу причины, почему он должен быть скопирован в другой параметр (относительно потоков)
так как у нас есть event
keyowrd, никто не может коснуться своего списка вызовов (никакого внешнего кода для класса, который я имею в виду)
2) Если im не ошибается, функция DemoEvent
должна быть виртуальной, поэтому ее можно переопределить в подклассах... (im sure ive видел ее где-то)
странно, что resharper также не добавит виртуального:
поэтому, если у меня есть этот код:
это говорит мне:
и когда я нажимаю его:
так снова мои 2 вопросы:
1), каков сценарий, который эта строка EventHandler<MyEventArgs> temp = SampleEvent;
будет решать, касаясь потока safty?
2) не должна ли функция быть virtual
? (im im ive видел этот шаблон с виртуальным)