using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Event
{
class Program
{
static void Main(string[] args)
{
var video = new Video(){ Title = "Video 1"};
var videoEncoder = new VideoEncoder(); //publisher
var mailService = new MailService(); //subscriber
videoEncoder.VideoEncoded += mailService.OnVideoEncoded;
videoEncoder.Encode(video);
}
}
//Should in this case be event sender...
public class VideoEncoder
{
//Step 1 - Define a delegate
public delegate void VideoEncodedEventHandler(object source, EventArgs args);
//Step 2 - Define A event.
public event VideoEncodedEventHandler VideoEncoded;
public void Encode(Video video)
{
Console.WriteLine("Encoding video...\n");
Thread.Sleep(3000);
//Step 3 - Raise the event
OnVideoEncoded(this);
}
protected virtual void OnVideoEncoded(object source)
{
VideoEncoded?.Invoke(source, EventArgs.Empty);
}
}
public class Video
{
public string Title { get; set; }
}
public class MailService
{
public void OnVideoEncoded(object source, EventArgs e)
{
Console.WriteLine("MailService is Mailing!");
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Event
{
class Program
{
static void Main(string[] args)
{
var video = new Video(){ Title = "Video 1"};
var videoEncoder = new VideoEncoder(); //publisher
var mailService = new MailService(); //subscriber
videoEncoder.VideoEncoded += mailService.OnVideoEncoded;
videoEncoder.Encode(video);
}
}
//Should in this case be event sender...
public class VideoEncoder
{
//Step 1 - Define a delegate
public delegate void VideoEncodedEventHandler(object source, EventArgs args);
//Step 2 - Define A event.
public event VideoEncodedEventHandler VideoEncoded;
public void Encode(Video video)
{
Console.WriteLine("Encoding video...\n");
Thread.Sleep(3000);
//Step 3 - Raise the event
OnVideoEncoded(this);
}
protected virtual void OnVideoEncoded(object source)
{
VideoEncoded?.Invoke(source, EventArgs.Empty);
}
}
public class Video
{
public string Title { get; set; }
}
public class MailService
{
public void OnVideoEncoded(object source, EventArgs e)
{
Console.WriteLine("MailService is Mailing!");
}
}
}
No comments:
Post a Comment