Fix visible book counts being incorrect on startup
If quick filters are applied on startup, a race condition was created between the initial library load book counting and the visible books counting. Only display results of the latest book count.
This commit is contained in:
parent
abd18d74b0
commit
3d50643ab0
@ -25,9 +25,17 @@ namespace LibationWinForms
|
|||||||
}
|
}
|
||||||
private async void setLiberatedVisibleMenuItemAsync(object _, object __)
|
private async void setLiberatedVisibleMenuItemAsync(object _, object __)
|
||||||
=> await Task.Run(setLiberatedVisibleMenuItem);
|
=> await Task.Run(setLiberatedVisibleMenuItem);
|
||||||
|
|
||||||
|
private static DateTime lastVisibleCountUpdated;
|
||||||
void setLiberatedVisibleMenuItem()
|
void setLiberatedVisibleMenuItem()
|
||||||
{
|
{
|
||||||
|
//Assume that all calls to update arrive in order,
|
||||||
|
//Only display results of the latest book count.
|
||||||
|
var updaterTime = lastVisibleCountUpdated = DateTime.UtcNow;
|
||||||
var libraryStats = LibraryCommands.GetCounts(productsDisplay.GetVisible());
|
var libraryStats = LibraryCommands.GetCounts(productsDisplay.GetVisible());
|
||||||
|
if (updaterTime < lastVisibleCountUpdated)
|
||||||
|
return;
|
||||||
|
|
||||||
this.UIThreadSync(() =>
|
this.UIThreadSync(() =>
|
||||||
{
|
{
|
||||||
if (libraryStats.HasPendingBooks)
|
if (libraryStats.HasPendingBooks)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user