private async Task LoadCategoriesByType(string type) { try { await _semaphore.WaitAsync(); CategoryModel categoryModel = new CategoryModel(db); var categories = await categoryModel.GetAllCategoriesByType(type); cbCategory.Items.Clear(); cbCategory.Items.AddRange(categories); cbCategory.DisplayMember = "Name"; cbCategory.ValueMember = "Id"; } catch (Exception e) { Console.WriteLine(e.Message); MessageBox.Show("Failed to load categories"); _semaphore.Release(); } finally { _semaphore.Release(); } }