Я работаю над проектом, в котором реализую метод SaveSettings, который сохраняет множество настроек в XML-файле.
Проблема в том, что для этого требуется время, поэтому, когда я нажимаю кнопку Сохранить в моей форме, мой пользовательский интерфейс просто зависает / останавливается на некоторое время.
Метод выглядит следующим образом
public void SaveSettings(SettingsType settingsType)
{
if (!File.Exists(_settingsFile))
{
File.Create(_settingsFile);
}
var xmlDoc = XDocument.Load(_settingsFile);
switch (settingsType)
{
case SettingsType.Measurement:
SaveMeasurementSettings(ref xmlDoc);
break;
case SettingsType.Display:
SaveDisplaySettings(ref xmlDoc);
break;
case SettingsType.Common:
SaveCommonSettings(ref xmlDoc);
break;
case SettingsType.View:
SaveViewSettings(ref xmlDoc);
break;
case SettingsType.InputChannel:
SaveInputChannelSettings(ref xmlDoc);
break;
default:
break;
}
xmlDoc.Save(_settingsFile);
}
Я хочу сделать метод SaveSettings асинхронным чем-то BeginSave / EndSave, чтобы при вызове BeginSave мой интерфейс работал гладко. У меня нет BackgroundWorker, так как я использую .Net Compact Framework.
Любые рекомендации по реализации асинхронного шаблона, пожалуйста ...