gpt4 book ai didi

C# MySQL 异步方法不起作用

转载 作者:行者123 更新时间:2023-11-29 06:16:49 24 4
gpt4 key购买 nike

大家好。我一直在使用 MySQL API 与我的 MySQL 数据库进行交互。唯一的问题是异步方法不起作用。

我的代码示例:

private MySqlConnection mySqlConnection;

private async Task OpenConnection() {
//Assign mySqlConnection if null
//Check if mySqlConnection is closed
await mySqlConnection.OpenAsync();
}

private async Task<bool> ExampleMethod() {
try {
await OpenConnection();
return true;
} catch {
return false;
}
}

每当我执行 ExampleMethod 时,我的应用程序都会暂停,直到该方法完成其操作。谁能告诉我可能是什么问题?

提前致谢。

最佳答案

发生这种情况是因为 MySql.Data 连接器中的 Async 方法实际上并不是异步的。它们阻塞网络 I/O,仅在数据库操作完成时返回。 (有关更详细的描述,请参阅 this question and its top answer。)MySQL bug #70111在 MySQL 连接器中报告此问题。

要获得真正的异步数据库操作,您必须等到错误被修复,或者切换到不同的连接器。我一直在开发一个新的、完全异步的连接器;要试用,请安装 MySqlConnector from NuGet ;它的source is at GitHub .

关于C# MySQL 异步方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35401014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com