Хойя. Я новичок в функции async от .net 4.5, используя C#. Я делаю небольшой проект, где мне требуется постоянно моделировать (изменять) несколько супер-больших данных объекта во все времена. Изменения сложны, как связанные сетки - многие внутренние данные объекта бросаются, меняются местами и вычисляются вокруг.C# безопасное сохранение async при изменении данных?
Однако я также хочу выполнить временное сохранение (сопоставление DTO + сериализация) в несколько сгруппированных файлов с помощью async, чтобы предотвратить его постоянное заикание, поскольку процесс сохранения - довольно утомительная работа.
- Мой вопрос: безопасно ли сохранять асинхронно, пока данные изменяются все время? Если нет, какие варианты я могу сделать?
Между тем вы можете сказать мне, чтобы он клонировал объект, чтобы он стал безопасным для спасения ... но это только отходит от того, что я собираюсь сделать - объекты действительно массивные.
Редактировать: Проект делит процесс на два: Имитировать объект перед проверкой на сохранение. Таким образом, да, это справедливо только в том случае, если сохранение выполняется вне процесса моделирования. Вот почему я спросил, безопасно ли это для асинхронного использования, потому что я не понимаю его полностью.
- Мой следующий вопрос: будет ли сохранение в процессе моделирования? Если да, то какие другие способы я могу сохранить, не мешая скорости моделирования? Или, возможно, некоторый шаблон, который нужно сделать для процесса экономии async, чтобы он не спас в процессе моделирования?
Реальный вопрос заключается в том, что приемлемо, чтобы сохранить часть одного государства со стороны другого, или является ли объект действителен только при замораживании? – Carlos
Проект делит процесс на два: Имитировать объект перед проверкой на сохранение. Таким образом, да, это справедливо только в том случае, если сохранение выполняется вне процесса моделирования. Вот почему я спросил, безопасно ли это для асинхронного использования, потому что я не понимаю его полностью. Будет ли сохранение происходить внутри процесса моделирования? Если да, то какие другие способы я могу сохранить, не мешая скорости моделирования? Или, возможно, некоторый шаблон, который нужно сделать для процесса экономии async, чтобы он не спас в процессе моделирования? – Kei
async/await используется, чтобы освободить поток. Обычно это делается из таких приложений, как WPF, поэтому поток GUI не зависает и ASP.NET, поэтому поток может обслуживать другой входящий запрос. Это не имеет никакого отношения к параллельной обработке или многопоточности. Операция сохранения будет выполняться одинаково долго в любом случае и будет неудачной или успешной на основе тех же правил. Так что в ореховой оболочке ваша бизнес-логика не должна влиять ни на что. – Igor