現在 WinForms で DataSets を使用しているプログラムを書き直して、それを WPF に移行したいと考えています。現在、プログラムはユーザーがログインするために Citrix を使用しています。誰かがデータに対して何らかのアクションを実行している場合、メイン スレッドは変更の BI をコミットしてサーバーに送り返すか、サーバーから新しいデータ (または変更されたデータ) を取得してキャッシュに追加します。現在の問題は、ユーザーがデータを処理したり、サーバーからメッセージを受信したりするたびに、ロックとロック解除が頻繁に使用されることです。クライアント側でマルチスレッドで動作するデータ エンティティまたは何らかの方法を探しています。つまり、他のすべてのユーザーとその変更と同期しながら、すべてのスレッドがデータの BI をコミットし、サーバーと通信できるようにしたいと考えています。
私はEFを見ましたが、スレッドセーフではありません。つまり、サーバーから更新が到着したときに、EFをロックして更新する必要があり、ユーザーがEF内のデータで作業するときに再度更新する必要があります。
プログラマーが毎回データをロック/ロック解除することなく、より簡単に行う方法はありますか?