Я заметил, что по мере роста базы данных моего приложения время, необходимое для возврата результатов, также увеличилось.Вначале это было незначительно, потому что было очень мало времени, чтобы вернуть источник данных.
Сейчас я нахожусь в точке, где он временно отключает интерфейс на пару секунд, но я бы хотелсоздать background workers
для выполнения этих задач.
Проблема с их созданием состоит в том, что существует около 9 кнопок, которым потребуется фоновый работник, и все, что они делают, это вызывают другой метод в DLL.Есть ли способ использовать общий метод для создания этих фоновых рабочих, используя API для фоновых рабочих, или я должен создать Enum
, который соответствует каждой кнопке и является параметром, принимаемым методом, который создает фоновый рабочий.Значит, я мог бы использовать простой switch
для выполнения любого метода из библиотеки DLL, которую я выбрал?
Пример кода:
void bg_DoWorkImports(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
try
{
e.Result = EngineBllUtility.GetNotImportedFiles(connectionString);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void bg_RunWorkerCompletedImports(object sender, RunWorkerCompletedEventArgs e)
{
DataSet temp = (DataSet)e.Result;
if (e.Result != null)
{
importFileGridView.DataSource = temp.Tables[0];
}
}