Skip to content

Commit a8cb8b2

Browse files
authored
Icon cache and Task.Run tweaks (#9885)
* icon cache and task tweaks * CR Feedback * Use ValueTask for displayName cache * CR feedback * CR feedback
1 parent cebb616 commit a8cb8b2

File tree

7 files changed

+209
-116
lines changed

7 files changed

+209
-116
lines changed

src/Files.App/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public static async Task<List<ListedItem>> ListEntries(
4444
{
4545
var sampler = new IntervalSampler(500);
4646
var tempList = new List<ListedItem>();
47-
var hasNextFile = false;
4847
var count = 0;
4948

5049
IUserSettingsService userSettingsService = Ioc.Default.GetService<IUserSettingsService>();
@@ -123,14 +122,13 @@ public static async Task<List<ListedItem>> ListEntries(
123122
break;
124123
}
125124

126-
hasNextFile = FindNextFile(hFile, out findData);
127125
if (intermediateAction != null && (count == 32 || sampler.CheckNow()))
128126
{
129127
await intermediateAction(tempList);
130128
// clear the temporary list every time we do an intermediate action
131129
tempList.Clear();
132130
}
133-
} while (hasNextFile);
131+
} while (FindNextFile(hFile, out findData));
134132

135133
FindClose(hFile);
136134
return tempList;

src/Files.App/Helpers/FileListCache/FileListCacheController.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,25 @@ private FileListCacheController()
1919

2020
private readonly ConcurrentDictionary<string, string> fileNamesCache = new ConcurrentDictionary<string, string>();
2121

22-
public Task<string> ReadFileDisplayNameFromCache(string path, CancellationToken cancellationToken)
22+
public ValueTask<string> ReadFileDisplayNameFromCache(string path, CancellationToken cancellationToken)
2323
{
2424
if (fileNamesCache.TryGetValue(path, out var displayName))
2525
{
26-
return Task.FromResult(displayName);
26+
return ValueTask.FromResult(displayName);
2727
}
2828

29-
return Task.FromResult<string>(null);
29+
return ValueTask.FromResult<string>(null);
3030
}
3131

32-
public Task SaveFileDisplayNameToCache(string path, string displayName)
32+
public ValueTask SaveFileDisplayNameToCache(string path, string displayName)
3333
{
3434
if (displayName == null)
3535
{
3636
fileNamesCache.TryRemove(path, out _);
3737
}
3838

3939
fileNamesCache[path] = displayName;
40-
return Task.CompletedTask;
40+
return ValueTask.CompletedTask;
4141
}
4242
}
4343
}

src/Files.App/Helpers/FileListCache/IFileListCache.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ namespace Files.App.Helpers.FileListCache
55
{
66
internal interface IFileListCache
77
{
8-
public Task<string> ReadFileDisplayNameFromCache(string path, CancellationToken cancellationToken);
8+
public ValueTask<string> ReadFileDisplayNameFromCache(string path, CancellationToken cancellationToken);
99

10-
public Task SaveFileDisplayNameToCache(string path, string displayName);
10+
public ValueTask SaveFileDisplayNameToCache(string path, string displayName);
1111
}
1212
}

0 commit comments

Comments
 (0)