wpf C#中不同线程的事件操作调用

1yjd4xko  于 12个月前  发布在  C#
关注(0)|答案(1)|浏览(176)
public class A
{
    private B NotifyObj = new B();
    
    public A()
    {
        NotifyObj.NotifyEvent += Notified;
    }
     private async void Notified()
     {
         
     }
    
}

Class B
{
   public event Action NotifyEvent;

   public CallEvent()
   {
       NotifyEvent?.Invoke();
   }
}

字符串
在上面的代码(使用C# WPF)中,类A在主线程中运行,类B在单独的线程中运行。如果主线程忙碌繁忙,其他线程调用CallEvent(),会发生什么?它会在消息队列中获取队列,还是会停止当前执行并执行此操作,然后继续执行前一个执行。基本上,NotifyEvent?. callke()的工作方式与C++中的Postmessage/SendMessage类似

nafvub8i

nafvub8i1#

如果从单独的线程调用该方法,则该方法将在单独的线程上执行。
如果你需要强制主线程(如果不是忙碌繁忙)运行一些代码,例如处理UI,你可以检查Dispatcher.Invoke方法。

相关问题