Не существует полностью портативного решения, посмотрите, поддерживает ли ваша платформа pthread_tryjoin_np или pthread_timedjoin_np. Поэтому вы просто проверяете, может ли поток быть присоединен (конечно, созданный с помощью PTHREAD_CREATE_JOINABLE).
Вы можете попробовать вот так:
_context.Accountcollection.AddRange(modules);
_context.SaveChanges();
.
.
.
_context.Accountcalendarevents.AddRange(calendar_event);
_context.SaveChanges();