我想获得教授这种特定类型的教师名单:
private async void button1_Click_1(object sender, EventArgs e)
{
dataGridView1.DataSource = await ConnectionAsync.getTeacherSHS();
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
现在我的方法是通过点击按钮来获取它,它将为我的datagridview返回一个数据表
mul=1
t = int(input())
s=input()
for i in range(0,2*t,2):
k=int(s[i])
mul=(mul*k)%1000000007
print(mul)
我的问题是,点击按钮后,呼叫阻止其他I / O我似乎无法输入其他文本框,因为它正在等待任务完成。我认为这是异步的,有人可以解释一下吗?
答案 0 :(得分:2)
这是因为Async
连接器中的MySql.Data
方法实际上并不是异步的。它们阻塞网络I / O,仅在DB操作完成时返回。 (有关更详细的说明,请参阅this question and its top answer。)MySQL bug #70111在MySQL连接器中报告此问题。
要获得真正的异步数据库操作,您必须等到修复该错误,或者切换到其他连接器。
我一直在开发一个新的完全异步连接器(MySqlConnector on NuGet; source on GitHub)。它支持MySqlDataAdapter
以来的let title = "somthing"
let body = "body text"
let params = ["title":mail, "body": pass] as Dictionary<String, String>
。