C# 事件、委托、回调、INotifyPropertyChanged

C# 事件、委托、回调、INotifyPropertyChanged,c#,events,callback,delegates,inotifypropertychanged,C#,Events,Callback,Delegates,Inotifypropertychanged,假设我有以下几点: class a { List <SomeType> actions; ForEachMethod() { foreach (action in actions) { OtherFucntion(action); } } } class b { public Bool WasDoSomeThingSuccesful; OtherFun

假设我有以下几点:

class a 
{  
    List <SomeType> actions;

    ForEachMethod()
    {
        foreach (action in actions)
        {
            OtherFucntion(action);
        }
    }
}

class b 
{
    public Bool WasDoSomeThingSuccesful;

    OtherFunction (SomeType action)
    {
        WasDoSomeThingSuccesful = false;
        DoSomeThing();
    }
}
a类
{  
列出行动;
ForEachMethod()
{
foreach(动作中的动作)
{
其他功能(作用);
}
}
}
b类
{
公共事业是成功的;
OtherFunction(SomeType动作)
{
wasdosomethingsuccessful=false;
DoSomeThing();
}
}
现在我想实现的是:
DoSomeThing()
是一些JS,它将把
wasdosomethingsuccessfull
的值更改为true,但它是异步的,所以我不知道什么时候会发生

因此,基本上我希望观察属性是否设置为true,当它为true时,我可以在
ForEachMethod()
中的操作中继续执行另一个操作


即使我确实理解委托和事件的概念,我也不知道在这种情况下如何处理它。

使用事件,就像下面给出的通知示例一样

public class A
{
    ...
    private void LaunchB()
    {
        var bObj = new B();
        bObj.OnTaskCompleted += TaskCompleted;
        bObj.StartWorking(); //some method call here
    }
    private void TaskCompleted(string status)
    {
        //notification from B comes
    }
    ...
}

public class B
{
    public delegate void TaskCompletedHandler(string status);
    public event TaskCompletedHandler OnTaskCompleted;
    private void DoWork()
    {
        if(completed)
        {
            ...
            if (OnTaskCompleted != null)
            {
               OnTaskCompleted("SUCCESS");
            }
        }
    }
}

在ASP.NET、winform或WPF中工作?当class
b
工作完成时,你想通知class
a
吗?没错,但是如果有其他方法来处理这个问题,我对一切都持开放态度,fe如果这可以通过添加一些新类或编辑方法来完成,我不介意。我的问题是JS更改了async属性,因此我无法执行if(wasdosomethingsuccessful){otherfunction()}之类的操作。现在我只使用Thread.Sleep(value),但它是无效的,如果操作更复杂,它可能会导致Sleep值不够。但是这两个类之间没有链接
a
不调用
b
反之亦然?我们可以向启动类
b