VOGBIT - система управления производством

Асинхронное (многопоточное) использование Csdn.Vogbit.Base.IExtensibleApplication

Страницы: 1
Асинхронное (многопоточное) использование Csdn.Vogbit.Base.IExtensibleApplication
 
Ув. разработчики возможно ли использовать IExtensibleApplication при написании многопоточного кода.
 
Пример простого кода:
Код
async void test()
{
   var t1 = System.Threading.Tasks.Task.Run(() => someWork());
   var t2 = System.Threading.Tasks.Task.Run(() => someWork());
   var i1 = await t1;
   var i2 = await t2;

   MessageBox.Show($"i1 = {i1}; i2 = {i2}");
}

Int32 someWork()
{
   Int32 count = 0;
   var ext = ExtApp.Application.General;
   foreach (var para in ext.Parameters(-1L, CatalogOptions.Recursive)) {
      count++;
   }
   return count;
}
К коду придираться не надо по поводу обработки исключения и т.д. это просто пример.
Запускается две задачи параллельно и vogbit падает. Теперь при попытке открыть любую форму (например номенклатура) или закрытия главного окна приложения ловится ошибка:
Цитата
Сообщение:
  Адресат вызова создал исключение.

Исключение:
  System.Reflection.TargetInvocationException

Источник:
  mscorlib

Версия 1.1.37841 сборка 171

Внутреннее исключение:: Адресат вызова создал исключение.
При этом если задачи запускать последовательно, то все ок.
Clipboard01.jpg (18.07 КБ)
Страницы: 1
Сейчас на форуме (гостей: 46)
Всего зарегистрированных пользователей: 2550
Приняло участие в обсуждении: 308
Всего тем: 1157
Всего сообщений: 8483

×
Вход на сайт