我有一个场景,可以一起打开WPF应用程序的多个实例。如果某个特定实例使数据模型变脏,我会更新数据库,说明当前记录是脏的(我在数据库中有一个列,指示记录是否脏)。我想通知其他实例记录已被弄脏,不允许进一步更改。完成更改后,我会更新此列,说它不再脏。
如何以MVVM方式将更改通知实现到其他实例。
一种方法是保持静态变量isRecordLocked并检查set是否为false,然后允许修改。
答案 0 :(得分:0)
此问题称为并发问题。您可以采用两种方法来处理并发问题 - 乐观锁定或悲观锁定。我建议你多阅读一下,以便更好地了解这个问题。我建议阅读的一篇文章是here
我解决这个问题的方法如下:
据我所知,保持静态变量的方法不会起作用。原因是如果它是一个多个应用程序实例,它们将位于单独的AppDomain中,并且无法在其外部进行通信。这样静态变量将特定于每个实例。但是,如果有多个客户端与单个服务器端通信,如果在服务器端创建静态变量,则该方法可行。