Guest User

Untitled

a guest
Jul 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. class MyClass {
  2.  
  3. ManualResetEvent mre;
  4.  
  5. public MyClass() {
  6. mre = new ManualResetEvent(false);
  7. Data = null;
  8. }
  9.  
  10. public object Data { get; set; }
  11.  
  12. void DataSet(object sender, EventArgs e) {
  13. Console.WriteLine("object Data has been set.");
  14. mre.Set();
  15. }
  16.  
  17. }
  18.  
  19. MyClass mc;
  20.  
  21. void processA() {
  22. mc = new MyClass();
  23. mc.Data = GetDataFromLongProcess();
  24. }
  25.  
  26. private object data;
  27. public object Data {
  28. get { return data;}
  29. set {
  30. if(value != data) {
  31. data = value;
  32. OnDataChanged();
  33. }
  34. }
  35. }
  36. protected virtual void OnDataChanged() {
  37. EventHandler handler = DataChanged;
  38. if(handler != null) handler(this, EventArgs.Empty);
  39. }
  40. public event EventHandler DataChanged;
  41.  
  42. MyClass mc = ...
  43. mc.DataChanged += delegate {
  44. Console.WriteLine("new data! wow!");
  45. };
  46.  
  47. public event Action OnDataChanged;
  48.  
  49. protected object _data = null;
  50. public object Data
  51. {
  52. get { return _data; }
  53. set
  54. {
  55. _data = value;
  56. if(OnDataChanged != null)
  57. OnDataChanged();
  58. }
  59. }
  60.  
  61. mc = new MyClass();
  62. mc.OnDataChanged += delegate() { Console.WriteLine("It changed!"); };
  63. mc.Data = SomeValue();
  64.  
  65. public event SomeDelegateThatTakesIntAsParameter myEvent;
  66. void SetData(int data)
  67. {
  68. if(myEvent!= null)
  69. myEvent(data)
  70. }
Add Comment
Please, Sign In to add comment