Click here to Skip to main content
15,895,740 members
Home / Discussions / C#
   

C#

 
SuggestionAbout Async Event Pin
Super Lloyd18-Jul-16 14:47
Super Lloyd18-Jul-16 14:47 
GeneralRe: About Async Event Pin
Brisingr Aerowing18-Jul-16 16:16
professionalBrisingr Aerowing18-Jul-16 16:16 
GeneralRe: About Async Event Pin
Super Lloyd18-Jul-16 16:57
Super Lloyd18-Jul-16 16:57 
GeneralRe: About Async Event Pin
Marc Clifton19-Jul-16 1:07
mvaMarc Clifton19-Jul-16 1:07 
GeneralRe: About Async Event Pin
Super Lloyd19-Jul-16 2:44
Super Lloyd19-Jul-16 2:44 
GeneralRe: About Async Event Pin
Marc Clifton19-Jul-16 1:50
mvaMarc Clifton19-Jul-16 1:50 
GeneralRe: About Async Event Pin
Richard Deeming19-Jul-16 1:55
mveRichard Deeming19-Jul-16 1:55 
AnswerRe: About Async Event Pin
Super Lloyd19-Jul-16 3:07
Super Lloyd19-Jul-16 3:07 
Works fine with me! Blush | :O
C#
    class AlarmSource
    {
        public async Task OnAlarm()
        {
            var eTasks = AlarmReceived?.GetInvocationList()?.Cast<Func<Task>>()?.ToList();
            if (eTasks == null)
                return;
            foreach (var t in eTasks)
                await t();
        }
        public event Func<Task> AlarmReceived;
    }

<pre>
class Consumer
{
    public Consumer(string name = null)
    {
        Name = name;
    }
    public string Name { get; set; }

    public AlarmSource Source
    {
        get { return source; }
        set
        {
            Func<Task> handler = () => Task.Run(() => Console.WriteLine(Name));
            if (source != null)
                source.AlarmReceived -= handler;
            source = value;
            if (source != null)
                source.AlarmReceived += handler;
        }
    }
    AlarmSource source;
}

class Program
{
    static void Main(string[] args)
    {
        DoAsyncStuff().Wait();
        Console.ReadLine();
    }
    static async Task DoAsyncStuff()
    {
        var c1 = new Consumer("A");
        var c2 = new Consumer("B");
        var src = new AlarmSource();
        c1.Source = src;
        c2.Source = src;
        await src.OnAlarm();
        c2.Source = null;
        await src.OnAlarm();
    }
}</pre>

It's interesting, when I think about it, despite the apparently different form, the step by step execution is not so different from mine...
I wonder why it work for me now, and not for you! OMG | :OMG: Confused | :confused:
A new .NET Serializer
All in one Menu-Ribbon Bar
Taking over the world since 1371!


modified 19-Jul-16 19:41pm.

GeneralRe: About Async Event Pin
Super Lloyd19-Jul-16 3:19
Super Lloyd19-Jul-16 3:19 
GeneralRe: About Async Event Pin
Super Lloyd19-Jul-16 14:32
Super Lloyd19-Jul-16 14:32 
GeneralRe: About Async Event Pin
Richard Deeming20-Jul-16 1:51
mveRichard Deeming20-Jul-16 1:51 
GeneralRe: About Async Event Pin
Super Lloyd20-Jul-16 2:08
Super Lloyd20-Jul-16 2:08 
GeneralRe: About Async Event Pin
Richard Deeming19-Jul-16 1:54
mveRichard Deeming19-Jul-16 1:54 
GeneralRe: About Async Event Pin
Super Lloyd19-Jul-16 2:55
Super Lloyd19-Jul-16 2:55 
QuestionHow can I run multiple powershell commands in a C#/powershell runspace? Pin
turbosupramk318-Jul-16 4:02
turbosupramk318-Jul-16 4:02 
QuestionRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
Richard MacCutchan18-Jul-16 4:22
mveRichard MacCutchan18-Jul-16 4:22 
AnswerRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
turbosupramk318-Jul-16 4:35
turbosupramk318-Jul-16 4:35 
GeneralRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
Richard MacCutchan18-Jul-16 4:51
mveRichard MacCutchan18-Jul-16 4:51 
GeneralRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
turbosupramk318-Jul-16 4:58
turbosupramk318-Jul-16 4:58 
GeneralRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
Richard MacCutchan18-Jul-16 6:15
mveRichard MacCutchan18-Jul-16 6:15 
GeneralRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
turbosupramk318-Jul-16 7:49
turbosupramk318-Jul-16 7:49 
GeneralRe: How can I run multiple powershell commands in a C#/powershell runspace? Pin
turbosupramk319-Jul-16 4:10
turbosupramk319-Jul-16 4:10 
QuestionClose Form Popup before opening MessageBox.Show and the form use delegate ? Pin
Member 245846717-Jul-16 22:47
Member 245846717-Jul-16 22:47 
AnswerRe: Close Form Popup before opening MessageBox.Show and the form use delegate ? Pin
OriginalGriff17-Jul-16 22:51
mveOriginalGriff17-Jul-16 22:51 
Questionc# parser questions. Pin
elfenliedtopfan517-Jul-16 13:13
elfenliedtopfan517-Jul-16 13:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.