mirror of
https://github.com/kangyu-california/PersistentWindows.git
synced 2025-05-11 13:05:38 +02:00
fix read/write conflict due to shallow copy
This commit is contained in:
parent
a98717ab4e
commit
748d86ddc8
1 changed files with 12 additions and 3 deletions
|
@ -255,14 +255,23 @@ namespace PersistentWindows.Common
|
||||||
{
|
{
|
||||||
if (dump_dead_window)
|
if (dump_dead_window)
|
||||||
{
|
{
|
||||||
var allApps = new Dictionary<string, Dictionary<IntPtr, List<ApplicationDisplayMetrics>>>(monitorApplications); //in-memory database of live windows
|
var allApps = new Dictionary<string, Dictionary<IntPtr, List<ApplicationDisplayMetrics>>>(); //in-memory database of live windows
|
||||||
|
foreach (var display_key in monitorApplications.Keys)
|
||||||
|
{
|
||||||
|
allApps[display_key] = new Dictionary<IntPtr, List<ApplicationDisplayMetrics>>();
|
||||||
|
foreach (var hwnd in monitorApplications[display_key].Keys)
|
||||||
|
{
|
||||||
|
allApps[display_key][hwnd] = new List<ApplicationDisplayMetrics>(monitorApplications[display_key][hwnd]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var display_key in deadApps.Keys)
|
foreach (var display_key in deadApps.Keys)
|
||||||
{
|
{
|
||||||
if (!monitorApplications.ContainsKey(display_key))
|
if (!allApps.ContainsKey(display_key))
|
||||||
continue;
|
continue;
|
||||||
foreach (var hwnd in deadApps[display_key].Keys)
|
foreach (var hwnd in deadApps[display_key].Keys)
|
||||||
{
|
{
|
||||||
if (monitorApplications[display_key].ContainsKey(hwnd))
|
if (allApps[display_key].ContainsKey(hwnd))
|
||||||
continue;
|
continue;
|
||||||
allApps[display_key][hwnd] = new List<ApplicationDisplayMetrics>(deadApps[display_key][hwnd]);
|
allApps[display_key][hwnd] = new List<ApplicationDisplayMetrics>(deadApps[display_key][hwnd]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue