MySql Connection方法是否支持异步编程?
我正在使用一种简单的方法来连接到MySql数据库,但是连接到该数据库需要一段时间&这会使应用程序处于无响应"模式.现在,我可以使用异步解决此问题吗?
I'm using a simple method for connecting to a MySql database but connecting to this database takes a while & this causes the app to be in "not responding" mode. now, can I use async for solving this?
脚本为:
Private void button_clicked()
{
MysqlConnection connection = new MysqlConnection(constring);
connection.open();
}
最后,我根据@MikaalAnwar的答案找到了确切的答案!
At the end, I found the exact answer according to @MikaalAnwar's answer!
我们不需要在连接字符串中添加任何新选项(例如
Asynchronous Processing = true
);这是用于SQL连接&不适用于MySql.
We don't need to add any new options (like
Asynchronous Processing=true
) to connection string; That's for SQL connections & doesn't work for MySql.
那么,我们现在该怎么办?
So, what should we do now?
我们将任何被视为具有异步选项
async
的空缺.然后,我们添加一个等待任务&运行它(Task.Run
).在该任务中,我们将通过连接来做我们想做的一切.
we make any void that is respected to have async option,
async
. Then we add an await task & run it (Task.Run
). inside that task, we do what ever we want with our connection.
例如:(我们不想使用任何数据集)
for example: (We don't want to use any datasets)
private async void DBConnect(String connectionString)
{
await Task.Run(() =>
{
MySqlConnection dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
}
);
}
&我们不使用
DBConnection.OpenAsync()
,因为void是async&我们已经使用了等待任务.
& We don't use
DBConnection.OpenAsync()
because the void is async & we've used await for the task.
完成:)