private void AsyncAccounts() { Task.Factory.StartNew(() => new mData().User(mIDInternal.IDTransport)) .ContinueWith(task => { if (task.IsCompleted) { Account = task.Result; foreach (mModulos m in Account.Modulos) { ListaModulos.Add(new mModuloGenerico() { Indice = m.Indice, Identificador = m.Identificador, NomeModulo = Modulos[m.Modulo - 1].Nome, ValorModulo = m.Modulo, AcessoModulo = m.Acesso, AcessoNome = m.Acesso.ToString(), Ativo = true }); } foreach (mSubModulos m in Account.SubModulos) { ListaSubModulos.Add(new mModuloGenerico() { Indice = m.Indice, Identificador = m.Identificador, NomeModulo = SubModulos[m.SubModulo - 1].Nome, ValorModulo = m.SubModulo, ValorAcesso = m.Acesso, AcessoNome = AcessoSubModulos[m.Acesso].Nome, Ativo = true }); } } }, System.Threading.CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext()); }
private async void AsyncAccounts() { var task = Task.Run(() => { Account = new mData().User(mIDInternal.IDTransport); Application.Current.Dispatcher.BeginInvoke( new Action(delegate { foreach (mModulos m in Account.Modulos) { ListaModulos.Add(new mModuloGenerico() { Indice = m.Indice, Identificador = m.Identificador, NomeModulo = Modulos[m.Modulo - 1].Nome, ValorModulo = m.Modulo, AcessoModulo = m.Acesso, AcessoNome = m.Acesso.ToString(), Ativo = true }); } foreach (mSubModulos m in Account.SubModulos) { ListaSubModulos.Add(new mModuloGenerico() { Indice = m.Indice, Identificador = m.Identificador, NomeModulo = SubModulos[m.SubModulo - 1].Nome, ValorModulo = m.SubModulo, ValorAcesso = m.Acesso, AcessoNome = AcessoSubModulos[m.Acesso].Nome, Ativo = true }); } })); }); await task; }