..как вернуть задачу через c# и. net 4.0? - PullRequest
0 голосов
/ 11 июля 2020

Я хочу вернуть задачу . через c# и. net 4,0 по сравнению с 2019 годом. не использовать asyns.

        CancellationTokenSource source = new CancellationTokenSource();
        Task  List<AccountList> task1 = new Task List<AccountList>(() => {
           using (var db1 = new SqlConnection(DbHelper.AccountConStr))        

            {
                string sql = "select * from  AccountList where UseFlag='1'";
                try
                {
                    IEnumerable<AccountList> lst = db1.Query<AccountList>(sql);
                    return lst.ToList();
                }
                catch
                {
                    return new List<AccountList>();
                }
            }
        });
        task1.Start();
        while (timeout > sw.ElapsedMilliseconds)
        source.Cancel();
       

как вернуть задачу

1 Ответ

0 голосов
/ 12 июля 2020

Почему вы не можете вернуть

Task<List<AccountList>>

, т.е. просто вернуть задачу 1.

Затем в вызывающем методе, поскольку у вас нет async / await, вы можете добиться того же, используя Task.ContinueWith (...). То, что вы хотите сделать после решения задачи, находится внутри ContinueWith. Asyn c / Await - это просто сахар синаткс.

...