mysql 异步 同步 不支持_MySQL C#异步方法不起作用?

我在服务器中有一个数据库,似乎async方法不起作用.

这是我的代码:

static async void Example()

{

string connectionString =

"Server=mydomainname.com;" +

"Port=3306;" +

"Database=scratch;" +

"Uid=Assassinbeast;" +

"Password=mypass123;" +

"AllowUserVariables= true;";

MySql.Data.MySqlClient.MySqlConnection sqConnection = new MySql.Data.MySqlClient.MySqlConnection(connectionString);

await sqConnection.OpenAsync();

Console.Write("Opened. Now Click to close");

Console.ReadLine();

sqConnection.Close();

}

static void Main(string[] args)

{

Console.ReadLine();

Example();

Console.WriteLine("Done");

Console.ReadLine();

}

在“await”语句中,它实际上应该跳回Main()函数并写出“Done”.但它不这样做.它只是同步运行,就像它不是异步方法一样,一旦功能完全完成,它将首先写入“完成”.

那我做错了什么?这是一个错误吗?

UPDATE

好的,所以在我得到一些答案之后,我实际上仍然看不到OpenAsync()和Open()之间的任何区别.

我开始尝试测试更多的东西,我想我可以得出结论,异步方法不起作用

这是我的新代码:

static async Task Example()

{

string connectionString =

"Server=mydomainname.com;" +

"Port=3306;" +

"Database=scratch;" +

"Uid=Assassinbeast;" +

"Password=mypass123;" +

"AllowUserVariables= true;";

using (var sqConnection = new MySql.Data.MySqlClient.MySqlConnection(connectionString))

{

Console.WriteLine("Opening");

await sqConnection.OpenAsync();

Console.WriteLine("Opened. Now Closing");

}

}

static async Task Example2()

{

//Lets pretend this is a database that my computer will try to connect to

Console.WriteLine("Opening");

await Task.Delay(1000); //Lets say it takes 1 second to open

Console.WriteLine("Opened. Now Closing");

}

static void Main(string[] args)

{

Console.ReadLine();

Task.Run(() => Example());

Task.Run(() => Example());

Task.Run(() => Example());

Task.Run(() => Example());

Task.Run(() => Example());

Task.Run(() => Console.WriteLine("Done"));

Console.ReadLine();

}

这里当我运行Example()5次时,它将输出如下:

它需要3秒才会写出“完成”.

请注意,我的计算机根本不在CPU上工作,因为它只等待并连接到数据库,大约需要1秒才能连接到.

所以它实际上阻止了我的计算机线程并且没有运行多线程,否则它会立即写出“完成”.

所以如果我调用Example2()而不是Example(),那么我得到的结果就是我想要的和我期望的结果:

在这里,它是真正的异步方法,因为我可以在我的计算机上一次完成6件事,只有2个核心.

但是第一个例子,我一次只能做两件事,因为MySQL异步方法不起作用.

我还使用sqConnection.Open()测试了它,它与sqConnection.OpenAsync()具有完全相同的结果

所以现在,我只是想弄清楚如何同时连接数据库5次.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

if嵌套while循环语句_Python学习笔记015--while循环嵌套

while循环嵌套前面学习过if的嵌套了&#xff0c;想一想if嵌套是什么样子的&#xff1f;类似if的嵌套&#xff0c;while嵌套就是&#xff1a;while里面还有while<1>while嵌套的格式while 条件1:条件1满足时&#xff0c;做的事情1条件1满足时&#xff0c;做的事情2条件1满足…

.net mysql 更新_升级 MySql.Data for NET 后遇到的神坑

今天把一个之前基于 http://ASP.NET MVC 5 EntityFramework 5 的项目里的 Nuget 包都升级了一下&#xff0c;包括将 EF 从 6.1.3 升级到 6.2.0&#xff0c;将 MySql.Data (用于 EF 连接 MySQL 数据库)从 6.9.9 升级到 8.0.12&#xff0c;MySql.Data.Entity 从 6.9.9 升级到 6.…

long类型怎么转换成string_Python知识点-Python变量类型有哪些?

Python的内置变量类型是非常基础的知识点&#xff0c;善用变量类型转换在日常的工作学习中会给我们带来非常大的帮助。相对于其他语言&#xff0c;Python的变量类型既有自己的特色方法&#xff0c;也有借鉴前辈的优秀之处。今天酷仔整理总结了关于Python内置变量类型一文&#…

mysql连接服务密码_Hydra爆破常见服务密码

Hydra是一款专业的服务密码探测工具&#xff0c;支持FTP、LDAP、MYSQL、Oracle、POP3、SMB、SSH等网络服务&#xff0c;多用于信息安全检查工作中弱口令登陆测试。实验环境操作系统&#xff1a;Kali 2019.4目标网络&#xff1a;192.168.168.0/24爆破教程第一步 升级系统、软件版…

矩阵求逆c语言实现_[V-SLAM] Bundle Adjustment 实现

SLAM问题的后端有主要有滤波和优化两种方案。目前&#xff0c;普遍认为优化的方法在精度上要超过滤波方法&#xff0c;因为它可以进行多次的线性化。近年来出现的SLAM算法也大都是基于优化的算法&#xff08;如ORB-SLAM、DSO等&#xff09;。优化问题的核心便是Bundle Adjustme…

centos安装 mysql_Linux centos 安装 mysql 5.6

一、mysql下载1、方式一(简单粗暴)直接在linux 目录下wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz2、方式二(官方下载)浏览器打开网址&#xff1a;https://www.mysql.com如下图依次点击1、2、3、4步如下图设置对应版本点击…

python定义一个类savingaccount表示银行账户_c#教程之c#模拟银行atm机示例分享

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ATM{abstract class Account{//账户号码protected long id;public long ID{get { return id; }set { id value; }}//账户密码protected string password;public string PassWor…

php 在线人数 mysql_PHP+MYSQL实例:编写网站在线人数的程序代码

以下为引用的内容&#xff1a;//Put your basic server info here$server "localhost"; //normally localhost$db_user "root"; //your MySQL database username$db_pass "password"; //your MySQL database password$database "users&…

tracepro杂散光分析例子_光刻机的蜕变过程及专利分析

来源&#xff1a;芯通社近两年&#xff0c;中国芯片产业受到了严重打击&#xff0c;痛定思痛之余也让国人意识到芯片自主研发的重要性。从2008年以来&#xff0c;十年间&#xff0c;芯片都是我国第一大宗进口商品&#xff0c;进口额远超于排名第二的石油。2018年我国进口集成电…

docker mysql日志_面试官问:了解Mysql主从复制原理么?我呵呵一笑

搭建Mysql主从同步之前&#xff0c;我们先来说他们之间同步的过程与原理&#xff1a;同步复制过程献上一张图&#xff0c;这张图诠释了整个同步过程主从复制过程&#xff1a;slave节点与主节点进行连接&#xff0c;建立主从关系&#xff0c;并把从哪开始同步&#xff0c;及哪个…

python 文件加密_python实现文件快照加密保护的方法

本文实例讲述了python实现文件快照加密保护的方法。分享给大家供大家参考。具体如下&#xff1a;这段代码可以对指定的目录进行扫描&#xff0c;包含子目录&#xff0c;对指定扩展名的文件进行SHA-1加密后存储在cvs文件&#xff0c;以防止文件被篡改调用方法&#xff1a;python…

查看socket缓冲区数据_什么是socket缓冲区?

Socket 就是发送和接收网络数据&#xff0c;Socket 有发送缓冲也有接收缓冲&#xff0c;这些缓冲区有什么作用&#xff1f;1、什么是Socket缓冲区&#xff1f;熟悉 Socket 的读者都知道&#xff0c;Socket 的发送和接收&#xff0c;就是调用 send 和 recv 函数。实际操作中&…

python登录并关注公众号_python微信公众号之关注公众号自动回复

我们知道一旦使用开发者模式&#xff0c;我们就无法使用公众号平台中的自动回复功能&#xff0c;也就是关注自动回复功能只有自己写才可以。如图所示&#xff0c;我们无法直接使用此功能。那么接着上一个博客&#xff0c;我们完成了关键词自动回复功能&#xff0c;博文地址实现…

哈工大大数据实验_科研常用 | 实验大数据分析方法

对于每个科研工作者而言&#xff0c;对实验数据进行处理是在开始论文写作之前十分常见的工作之一。但是&#xff0c;常见的数据分析方法有哪些呢&#xff1f;常用的数据分析方法有&#xff1a;聚类分析、因子分析、相关分析、对应分析、回归分析、方差分析。1、聚类分析(Cluste…

搭建github服务器_搭建一个属于自己的公网博客

相信每一位程序员都喜欢拥有一个属于自己的博客。当然&#xff0c;在我认为&#xff0c;内容以及模块都要自己进行可扩展定义才是真正属于自己的。那么想要一个博客就必须要有一个服务器和一个域名&#xff0c;这样的话才能让自己的博文内容发扬光大&#xff0c;但是服务器的性…

mysql超过1W条查询不显示_mysql 被写入1W数据后无法select*from table,但是加入limit参数后可以查询...

数据库表结构 innodbSELECT 查询错误提示ERROR 2013 (HY000): Lost connection to MySQL server during query我觉得可能是 SELECT 执行时间过长,所以报错.mysql 日志150414 03:11:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql150414 3:11:27 In…

python分支结构基础实训_零基础Python教程-分支结构

文章目录下面就让我们先一起学习单分支结构&#xff1a;单分支结构双分支结构多分支结构在日常生活中&#xff0c;我们会遇到很多选择类的问题。比如&#xff1a;午饭吃螺蛳粉还是生煎包?下班回家坐地铁还是公交车?这也就是我们编程语言中常说的“分支结构”&#xff0c;今天…

mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作

1.外键: 用来建立两张表之间的关系- 一对多- 多对多- 一对一研究表与表之间的关系:1.定义一张 员工部门表id, name, gender, dep_name, dep_desc- 将所有数据存放在一张表中的弊端:1.结构不清晰 ---> 不致命2.浪费空间 ---> 不致命3.可扩展性极差 ---> 不可忽视的弊端…

python3 urllib安装_对python3 urllib包与http包的使用详解

urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL&#xff0c;使用urllib操作URL可以像使用和打开本地文件一样地操作。而 http包则实现了对 HTTP协议的封装&#xff0c;是urllib.request模块的底层。1.urllib包简介2. http 包简介1.urllib包简介urllib包主要模…

OpenCV学习笔记 - 使用密集光流检测运动的简单方法

一、简述 使用光流进行运动检测的方法与帧间差分方法类似。主要区别在于第一步,我们将从光流而不是帧差分中获取初始运动信息(一些神经网络模型也是基于光流和原始图像进行运动识别训练的)。 该算法概述如下: 1、计算密集光流 2、获得运动掩模的阈值光流 3、在运动蒙版中查…