zoukankan      html  css  js  c++  java
  • c# async 事物

    上菜

    async await 机制 确实便捷开发   多线程时 如何一致性如何保证呢?

    public async Task<ActionResult<IEnumerable<string>>>  Get()
            {
                using (var trans = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        Console.WriteLine("1:id----" + Thread.CurrentThread.ManagedThreadId.ToString());
                        await TaskAsync("my001");
                        Console.WriteLine("2:id----" + Thread.CurrentThread.ManagedThreadId.ToString());
                        await TaskAsync("my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002my002");
                        Console.WriteLine("3:id----" + Thread.CurrentThread.ManagedThreadId.ToString());
                        trans.Complete();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("wowo-- ex:" + ex.ToString());
                    }
    
                   
                }
    
                return new string[] { "value1", "value2" };
            }
    public async Task TaskAsync(string name)
            {
                using (var db = new SqlConnection("Data Source=.;Initial Catalog=qyy;Uid=sa;Pwd=123456;"))
                {
                    Console.WriteLine("4:id-- " + name + "--" + Thread.CurrentThread.ManagedThreadId.ToString());
                    await db.OpenAsync();
                    await db.ExecuteAsync($@"
                                    INSERT INTO [dbo].[a]
                                           ([name])
                                     VALUES
                                           ('{name}')
                            ");
                    Console.WriteLine("5:id-- " + name + "--" + Thread.CurrentThread.ManagedThreadId.ToString());
                }
            }

     注:name 字段 varchar(50) 

    好了 事物妥妥的执行 未出现任何 异常数据

  • 相关阅读:
    接口测试-postman
    select
    SQLserver的七种约束。
    数据库的创建、表的创建。
    vim编辑器删除键失效
    客户端通过 HTTP 请求的 Header 信息总结
    清理/boot目录内容
    CentOS 7 配置samba 和 autofs
    CentOS 7 配置 nfs 和 autofs
    tftp简单文件传输协议基本配置
  • 原文地址:https://www.cnblogs.com/codedreams/p/9299148.html
Copyright © 2011-2022 走看看